WEBBROWSER怎么加载COOKIE

lmjloavcj1 2008-07-16 08:16:32
比如我在IE中登錄HTTP://WWW.DVBBS。COM這個BBS.輸入用戶名和密碼登錄以後,并選擇保存密碼一個月,這一個月,我用IE登錄這個網站就不用密碼,但是我用WEBBROWSER訪問,還是需要重新登錄!
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gyk120 2008-07-16
  • 打赏
  • 举报
回复
原来是cookie共享……
引用某位前辈的文章:
放个IdCookieManager1,先用idhttp去get,在IdCookieManager1的onnewcookie事件里记录下acookie.ClientCookie;

post的时候idHttp1.Request.CustomHeaders.Text:=cookies;

最好用vsniffer之类的嗅探器看下cookie的格式,我以前做的一个自动登陆程序,IdCookieManager1取到的cookie字串和实际的不一样。


源码:

function getcook():boolean;
var
str2,cookies:string;
begin
result:=false;
if CanGetIECookie(hosturl,str2) then
iecookie:=copy(str2,pos('warlord2',str2),length(str2)-pos('warlord2',str2)+1)
else
exit;

cookies:='Cookie: '+iecookie+'; '+idcookiestr;
idHttp1.Request.CustomHeaders.Text:=cookies;
idHttp1.CookieManager.CookieCollection.Clear;
result:=true;
end;

procedure TForm1.IdCookieManager1NewCookie(ASender: TObject;
ACookie: TIdCookieRFC2109; var VAccept: Boolean);
begin
idcookiestr:=acookie.ClientCookie;
end;

function TForm1.CanGetIECookie(const URL:string;var Cookie:string):boolean;
var
lpvBuffer:array[0..1000] of byte;
lpdwBufferLength:cardinal;
begin
lpdwBufferLength:=sizeof(lpvBuffer);
result:=InternetGetCookie(PChar(URL),nil,@lpvBuffer,lpdwBufferLength);
if result then
Cookie:=pchar(@lpvBuffer);
end;
lmjloavcj1 2008-07-16
  • 打赏
  • 举报
回复
没有,比如一个网站在IE中登錄以后,在WEBBROWSER中又要重新登錄
gyk120 2008-07-16
  • 打赏
  • 举报
回复
webbroser可以保存cookie的
楼主是不是哪里出现问题哪里
amdwinter 2008-07-16
  • 打赏
  • 举报
回复
纯粹接分

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧