3 回答
![?](http://img1.sycdn.imooc.com/545850ee0001798a02200220-100-100.jpg)
TA贡献1839条经验 获得超15个赞
获取 webrowser 的 Cookie ,可以通过 IHtmlDocument2 接口,访问 cookie 属性,以下是代码示例:
1 | CooKies :=(WebBrowser1 . Document as IHtmlDocument2).cookie; |
如果给其他组件使用,例如 IdHttp 组件,需要前面再添加“ Cookie:”做为标示符:
123 | CookieStr := 'Cookie: ' + CooKies; idHttp2 . Request . CustomHeaders . Text := CookieStr; Memo1 . Text := UTF8Decode(IDHttp1 . Get(网址)); |
![?](http://img1.sycdn.imooc.com/5333a1a90001c8d802000200-100-100.jpg)
TA贡献1785条经验 获得超8个赞
获取post,或者get返回的cookie,除了过滤返回的字符串之外,最简单的方法是使用idhttp的CookieManager属性。
比如获得IDhttp返回的全部Cookie:
if idhttp1.CookieManager.CookieCollection.Count > 0 then
for i := 0 to idhttp1.CookieManager.CookieCollection.Count - 1 do
temp := temp + idhttp1.CookieManager.CookieCollection.Items[i] .CookieText + ';';
也可以通过属性名和属性值的形式获得,这样就可以提取出个别的Cookie值:
idhttp1.CookieManager.CookieCollection.Items[i]
.CookieName idhttp1.CookieManager.CookieCollection.Items[i]
.Value
比如:
temp := TStringList.Create;
if idhttp1.CookieManager.CookieCollection.Count > 0 then
for i := 0 to idhttp1.CookieManager.CookieCollection.Count - 1 do
// temp := temp + idhttp1.CookieManager.CookieCollection.Items[i] .CookieText + ';';
temp.Add(idhttp1.CookieManager.CookieCollection.Items[i]
.CookieName + '=' + idhttp1.CookieManager.CookieCollection.Items[i]
.Value);
![?](http://img1.sycdn.imooc.com/533e52b90001456f02000200-100-100.jpg)
TA贡献1806条经验 获得超8个赞
以下是使用步骤的演示代码:
1、WebBrowswer 控件打开网址后,获取其 Cookie 值:
1 | CookieStr := 'Cookie: ' + (Web . document as IHtmlDocument2).cookie; |
2、将 Cookie 值传给 idhttp 控件使用:
12 | if CookieStr <> '' then IdHTTP1 . Request . CustomHeaders . Text := CookieStr; |
- 3 回答
- 0 关注
- 291 浏览
添加回答
举报