使用Indy的IdHTTP如何获得下载图片的二进制流???(10分)

  • 主题发起人 主题发起人 dazzling
  • 开始时间 开始时间
D

dazzling

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢啦!!!
 
建立一个
imagestream:memorystream;
然后 idhttp.get('http://www.delphibbs.com/delphibbs/dfwlogo.gif',imagestream);
 
不是啊,我是要打开一个网站,得到该网站中包含的GIF流啊!!
比如上述:
idhttp.get('http://www.delphibbs.com/delphibbs/dfwlogo.gif',imagestream);
要变成
idhttp.get('http://www.delphibbs.com',imagestream);这时imagestream里怎能得到网站上包含的GIF图片流?
 
你对HTTP协议没有理解清楚。
我们看到IE等浏览器是访问的 HTTP://WWW.DELPHIBBS.COM,
但实际上他首先分析返回的主页HTML,也就是
idhttp.get('http://www.delphibbs.com',stream);
中的stream,里面一般都有图片的URL,于是他向服务器获取图片 HTTP://WWW.DELPHIBBS.COM/DELPHIBBS/DFWLOG.GIF,(1.GIF,2.GIF,3.GIF......)
也就是idhttp.get('http://www.delphibbs.com/delphibbs/dfwlogo.gif',imagestream);
然后将所有的文字,图片等信息在一个页面里面显示出来。

所以我们用IE看一个网页,IE是会向服务器发起N次请求的。好比先接收一个列表(首页的
HTML),然后看列表中有那些内容,比如有1。GIF,2.MP3,3.RM,等,然后再向服务器请求
接收1.GIF,2.MP3,3.RM. 所以GET就是获取1个文件。你用
get('http://www.delphibbs.com')时,相当于get('http://www.delphibbs.com/???')
只不过这个???不是你指定的,是服务器根据配置选择的
 
接受答案了.
 
后退
顶部