使用indy无法得到正确的页面 ( 积分: 10 )

  • 主题发起人 主题发起人 huhuc
  • 开始时间 开始时间
H

huhuc

Unregistered / Unconfirmed
GUEST, unregistred user!
在indy中
idHTTP1.HandleRedirects:=true;
idHTTP1.ContentType:='*/*';
memo1.text:=idhttp1.get('http://211.157.104.67/sipoasp/zljs/hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11?1');
每次都显示
<img src='/newmyisapi.dll?pdgfile=h:/fm/2126/200410096078/000005.pdg&tiffile=D:/websit/bookstemp/fm/200410096078/000005' height='1' width='1'>

<script>
<!--
function reurl(){

url = location.href; //把当前页面的地址赋给变量 url

var times = url.split("?"); //分切变量 url 分隔符号为 "?"

if(times[1] != 1){ //如果?后的值不等于1表示没有刷新

url += "?1"; //把变量 url 的值加入 ?1

self.location.replace(url); //刷新页面

}
}

onload=reurl
-->
</script>


<!--<html>
<head>
</head>
<body onload="location.href='hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11?1'">
</body>
</html>-->

但是
在ie中输入http://211.157.104.67/sipoasp/zljs/hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11?1
就会下载一个tif图片

在ie访问之又用indy访问,此时返回
<html>
<body onload="location.href='/temp/fm/200410096078/000005.TIF'">
</body>
</html>
这个才是我要的。
如果不用ie来访问,indy总是得到不正确的页面。

这个问题折腾了我几天了,百思不得其解,还望诸位大侠多指教。
 
在indy中
idHTTP1.HandleRedirects:=true;
idHTTP1.ContentType:='*/*';
memo1.text:=idhttp1.get('http://211.157.104.67/sipoasp/zljs/hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11?1');
每次都显示
<img src='/newmyisapi.dll?pdgfile=h:/fm/2126/200410096078/000005.pdg&tiffile=D:/websit/bookstemp/fm/200410096078/000005' height='1' width='1'>

<script>
<!--
function reurl(){

url = location.href; //把当前页面的地址赋给变量 url

var times = url.split("?"); //分切变量 url 分隔符号为 "?"

if(times[1] != 1){ //如果?后的值不等于1表示没有刷新

url += "?1"; //把变量 url 的值加入 ?1

self.location.replace(url); //刷新页面

}
}

onload=reurl
-->
</script>


<!--<html>
<head>
</head>
<body onload="location.href='hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11?1'">
</body>
</html>-->

但是
在ie中输入http://211.157.104.67/sipoasp/zljs/hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11?1
就会下载一个tif图片

在ie访问之又用indy访问,此时返回
<html>
<body onload="location.href='/temp/fm/200410096078/000005.TIF'">
</body>
</html>
这个才是我要的。
如果不用ie来访问,indy总是得到不正确的页面。

这个问题折腾了我几天了,百思不得其解,还望诸位大侠多指教。
 
Self.IdHTTP1.HandleRedirects := True;
self.Memo1.Text := Self.IdHTTP1.Get(self.Edit1.Text);

经多次测试,以上代码可以正确返回

<html>
<body onload="location.href='/temp/fm/200410096078/000005.TIF'">
</body>
</html>

测试环境:
Win2000 Server Sp4 / Win2000 Server
Delphi7 + Indy9.0.18
开机后直接运行以上代码的程序,不打开IE。
 
姐姐,这个问题终于解决了,原来是这么回事:
你看那个
<img src='/newmyisapi.dll?pdgfile=h:/fm/2126/200410096078/000005.pdg&tiffile=D:/websit/bookstemp/fm/200410096078/000005' height='1' width='1'>
这个dll的作用应该是在生成/temp/fm/200410096078/000005.TIF文件。
这样,当访问hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11时
服务器首先检测/temp/fm/200410096078/000005.TIF是否存在
若有,就会返回:
<html>
<body onload="location.href='/temp/fm/200410096078/000005.TIF'">
</body>
</html>
否则返回
......
<img src='/newmyisapi.dll?pdgfile=h:/fm/2126/200410096078/000005.pdg&tiffile=D:/websit/bookstemp/fm/200410096078/000005' height='1' width='1'>
......
<body onload="location.href='hyjs-browse-main.asp?mm=1&tifpath=/temp/fm/200410096078&pdgpath=/fm/2126/200410096078&curpage=5&totalpage=11?1'">
这样通过img标签来访问这个dll,所以在ie下可以下载成功,而在ie下载之后,
/temp/fm/200410096078/000005.TIF不会马上删除,这是之后用indy可以返回正常的原因。
不过一开始谁会注意到哪个<img>原来暗藏玄机呢?
 
原来是这样,呵呵,以后直接Get(''/newmyisapi.dll?pdgfile=h:/fm/2126/200410096078/000005.pdg&tiffile=D:/websit/bookstemp/fm/200410096078/000005')好了
 
后退
顶部