3 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
獲取 webrowser 的 Cookie ,可以通過(guò) IHtmlDocument2 接口,訪問(wèn) cookie 屬性,以下是代碼示例:
1 | CooKies :=(WebBrowser1 . Document as IHtmlDocument2).cookie; |
如果給其他組件使用,例如 IdHttp 組件,需要前面再添加“ Cookie:”做為標(biāo)示符:
123 | CookieStr := 'Cookie: ' + CooKies; idHttp2 . Request . CustomHeaders . Text := CookieStr; Memo1 . Text := UTF8Decode(IDHttp1 . Get(網(wǎng)址)); |

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
獲取post,或者get返回的cookie,除了過(guò)濾返回的字符串之外,最簡(jiǎn)單的方法是使用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 + ';';
也可以通過(guò)屬性名和屬性值的形式獲得,這樣就可以提取出個(gè)別的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);

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
以下是使用步驟的演示代碼:
1、WebBrowswer 控件打開(kāi)網(wǎng)址后,獲取其 Cookie 值:
1 | CookieStr := 'Cookie: ' + (Web . document as IHtmlDocument2).cookie; |
2、將 Cookie 值傳給 idhttp 控件使用:
12 | if CookieStr <> '' then IdHTTP1 . Request . CustomHeaders . Text := CookieStr; |
添加回答
舉報(bào)