我有Indy10.6,Windows10和Delphi XE7。
在对HTTPS请求的响应中,CookieManager
声明没有cookies,但HTTP Analyzer显示存在:
HTTP/1.1 200 OK
Date: Wed, 11 Jul 2018 10:47:22 GMT
Server: Apache
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Frame-Options: DENY
Set-Cookie: JSESSIONID=vqf9bFgB0wp1vyznZTQ2TLGzpQbpYQTgnwqhtvQpl2D0JdsrpH8G!-32035106!wls-baap401.test.vocalink.co.uk!13129!13109; path=/; HttpOnly
Content-Type: text/xml; charset=UTF-8
Content-Length: 162
我的代码是:
html := IdHTTP1.Get(Login);
Cookies := IdCookieManager1.CookieCollection.LockCookieList(caRead);
try
for I := 0 to Cookies.Count-1 do
begin
Cookie := Cookies[I];
// save Cookie as needed...
end;
finally
IdCookieManager1.CookieCollection.UnlockCookieList(caRead);
end;
但是Cookies.Count
是0。
有什么想法吗?
发布于 2018-07-11 22:57:03
已排序。作为Indy的新手,我忘记了将cookie管理器连接到idHTTP!现在代码可以正常工作了。
发布于 2018-07-12 16:34:03
谢谢。我已经按照建议更改了代码,它更干净,而且显然可以正常工作。直到我开始这个项目,我才意识到可以有多个cookie!
html := IdHTTP1.get(login);
cookies := IdHTTP1.CookieManager.CookieCollection.LockCookieList(caRead);
try
for J := 0 to cookies.count - 1 do
begin
cookie := cookies[J];
// save Cookie as needed...
CookieValue := cookie.CookieText;
end;
finally
IdHTTP1.CookieManager.CookieCollection.UnlockCookieList(caRead);
end ;
问候你,伊恩
https://stackoverflow.com/questions/51283766
复制相似问题