把html源文件输入内嵌浏览器,要求cookie的图片不能显示!
seeku 2006-02-17 02:54:54 我有一个小程序,使用了HtmlView,使用IID_IHTMLDocument2接口的
write 方法来显示我要输出的网页。
具体实现差不多这个样子
LPDISPATCH pHtmlDoc = GetHtmlDocument();// get_Document();
hr=pHtmlDoc->QueryInterface(IID_IHTMLDocument2,(void **)&phmDoc2);
phmDoc2->open(_bstr_t("text/html"),
_variant_t("_self") ,
_variant_t(),
_variant_t(),
NULL);
phmDoc2->write(sfArray);
phmDoc2->close();
如果我要输出的内容里面包含<img src="..."></img> 这类的信息,
HtmlView会自动下载图片和显示。
现在服务器增加了安全要求,下载图片的时候要向服务器发送cookie认证。
cookie的内容我知道的,但是却无法让内嵌的IWebBrowser下载的时候
发送Cookie!这样图片现在就不能显示了。
我现在通过IID_IHTMLDocument2的put_cookie方法,设置cookie。
设置完了以后,我使用Navigate2方法,内嵌的IWebBrowser可以成功
下载到图片的。(说明我用的方法也不全错)
不过通过 流 输入到IID_IHTMLDocument2的情形,如果HTML源文件中
包含<img src="..."></img> 这类的信息,这个浏览器会向指定的URL
发送请求,下载图片,却不会发送cookie,所以服务器不让下载。
不知道大家是否了解我的问题,这个问题困扰我一个星期了。理论上我
可以自己下载图片,然后修改html的源文件中的图像地址为本地,这样
也可以显示,不过比较麻烦。最后能通过什么方法让IWebBrowser自动
发送cookie。
这个版很久没有来过了,以前在这里受到很多老大的帮助,尤其是蒋老大的恩惠。
谢谢大家!!