idhttp与IdCookieManager处理登陆过程
来源:互联网 发布:u盘恢复数据软件哪个好 编辑:程序博客网 时间:2024/04/29 07:13
我们知道,用IE注册网页(象论坛)时,它能够自动找出相应的Cookie并提交给服务器,从而使用户不用重新登录就能够看到与他自己帐号有关的内容.这是怎么实现的呢?
如果我用用IE的ACTIVEX控件TWebBrowser,这个问题是不用考虑的,它自己处理了.但是有些场合TWebBrowser并不是上佳的选择,比如我们要从网页上取点内容下来,但是不用显示,这样也用WebBrowser的话程序就显得笨拙了.
我今天用的是idHttp,据说拿它和IdCookieManager连起来用很好用,但是我没有弄懂.我用的是别的办法,整理如下:
*取得与网址有关的Cookie
用InternetGetCookie这个API,它在WinInet单元中
有4个参数,第一个是URL,第二个设为nil,第三个指到一个变量BUFFER,存放Cookie的内容,第四个是Cookie的长度
InternetGetCookie(PChar(Edit1.Text), nil, buf, Size)
*给idHttp设置Cookie
idHttp1.Request.CustomHeaders.Text := 'Cookie: ' + Memo1.Lines.Text;
*取网页内容
Memo1.Lines.Text := idHttp1.Get(Url);
比较完整的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
buf: array[0..1023] of char;
Size: DWord;
begin
if InternetGetCookie(PChar(Edit1.Text), PChar(Edit2.Text), buf, Size) then
begin
Memo1.Lines.Text := Buf;
idHttp1.Request.CustomHeaders.Text := 'Cookie: ' + Memo1.Lines.Text;
end
else
Memo1.Lines.Text := 'error!';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo2.Lines.Text := IdHTTP1.Get(Edit1.Text);
end;
//提次窗体
uses MSHTML;
procedure TForm1.Button1Click(Sender: TObject);
begin
(((WebBrowser1.Document as IHTMLDocument2).body.all as
IHTMLElementCollection).item('key', 0) as IHTMLInputElement
).value := 'zswang';
//提交
(((WebBrowser1.Document as IHTMLDocument2).body.all as
IHTMLElementCollection).item('hlf', 0) as IHTMLFormElement
).submit;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://search.csdn.net/search.asp');
end;
idhttp1.Request.RawHeaders.Values['Cookie'] := '这里是cookie的值'; //
- idhttp与IdCookieManager处理登陆过程
- IDHTTP,IdCookieManager,webbrowsers的使用方法
- Idhttp.post 登陆网站
- 用idhttp登陆淘宝网站
- idhttp
- 坐席客户端的登陆错误处理过程
- delphi idhttp访问http与https不同点
- 登陆过程
- idhttp的socket error # 10054 错误的处理办法
- HTTP 常见异常状态及Delphi IDHTTP 控件处理方式
- Delphi 自定义消息处理过程与Windows消息处理过程
- Idhttp 学习中遇到的问题 与 解决方法
- windowsxp登陆过程
- windowsxp登陆过程
- 登陆过程 二次开发
- web登陆过程总结
- 微信扫码登陆过程。
- IP数据报传输与处理过程
- 可在线编辑的表格
- 感谢您来到我的 CSDN BLOG
- oracle主机身份证明 失败 提示wrong password
- VC中如何获取鼠标点击处控件的ID
- VBScript中的正则表达式语法详解
- idhttp与IdCookieManager处理登陆过程
- 苹果新年雄心
- 模式匹配,匹配结果赋值给变量
- 简单获取键盘的KeyCode
- vista windows mail
- VC中的常用的20个方
- 2008-01-17 编译 java程序出现的一个异常
- Delphi调用WinSock和API来取MAC地址
- RMAN中常用backup命令