IDHTTP,IdCookieManager,webbrowsers的使用方法

今晚花了很长时间,到处搜索~~弄了很多东西~~总结一下先~!

从webbrowsers说起:

wb1.Navigate("http://hi.baidu.com");跳转到这个页面
wb1.OleObject.document.getElementByID('username').innerText:='fatkun';//如果知道ID
wb1.OleObject.document.getElementsByTagName('input').item(0).click;//如果知道第几个按钮
wb1.OleObject.document.all.item('userlogin', 0).click;//如果知道NAME

用webbbrowsers取得cookies

首先,要加入 uses MSHTML;

var Doc:IHTMLDocument2;
begin
Doc:=wb1.Document as IHTMLDocument2;
Doc.cookie;//这个就是cookies了。。
end;

更详细可以参考了万一老师的博客文章:WebBrowser 操作记要

IDHTTP:

//这里POST的具体数据,你可以使用WinSock Expert抓包来获取,然后每一项加在TSTRINGS里面发出去就可以了。

procedure TForm1.btn5Click(Sender: TObject);//测试登陆DISCUZ6.0,6.1都成功!
var
ts:TStrings;
str:string;
begin
ts:=TStringList.Create;
ts.Add('formhash=8');
ts.Add('cookietime=2592000');
ts.Add('loginfield=username');
ts.Add('username=你的用户名');
ts.Add('password=你的密码');
ts.Add('userlogin');
str:=IdHTTP1.Post('http://bbs.focusmobile.cn/logging.php?action=login&loginsubmit=true',ts);
mmo1.Text:=str;
end;

在IdCookieManager1中取得cookies,当然要设置

IdHTTP1.CookieManager:=IdCookieManager1;

for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do
      cookieStr:=cookieStr+(IdCookieManager1.CookieCollection.Items[i].CookieText);

取得cookies有什么用呢?当然有用啦.
拿到cookies后,我们可以把cookies赋值给另一个idhttp
idHttp2.Request.CustomHeaders.Text := 'Cookie: '+cookieStr;

 

转自:http://hi.baidu.com/fatkun/blog/item/a579c2ed9732984878f05584.html

你可能感兴趣的:(Delphi,IdHttp控件)