用delphi来post数据的时候,请问如何带上cookie呢?

loveifa 2011-03-22 11:35:29
我用这段代码的话 如果原网页不需要登录的话 是可以用的

但是原网页需要登录后才可以发帖。请问如何带上cookie呢?


uses IDHTTP;
Var
Response:string;
Paramstr:Tstringlist;
IdHTTP1:Tidhttp;
begin
IdHTTP1:=Tidhttp.create(nil);
Paramstr:= TStringList.Create;
Paramstr.Add('name=333333');
Paramstr.Add('submit=%CC%E1%BD%BB');
IdHTTP1.Request.Referer := 'http://localhost/post/index.php';
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)';
Response:=IdHTTP1.Post(url, Paramstr);
showmessage(Response);
Freeandnil(IdHTTP1);
Paramstr.Free;
end;



我把包截下来了 大家帮忙分析下。。谢谢了

========================================================
POST /forum.php?mod=post&action=reply&fid=204&tid=2447971&extra=%26page%3D1&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1 HTTP/1.1
Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/QVOD, application/QVOD, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://bbs.xxxxxxxxx.com/forum.php?mod=post&action=reply&fid=204&tid=2447971&extra=%26page%
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: bbs.admin5.com
Content-Length: 77
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: QRNq_2132_lastvisit=1299575504; QRNq_2132_sid=6aFHuE; QRNq_2132_lastact=1300763841%09home.php%09misc; cnzz_a30042864=3; sin30042864=none; rtime30042864=1; ltime30042864=1300764168687; cnzz_eid30042864=95466335-1299578956-; admin5_com=admin5_com; QRNq_2132_auth=6db8CS1hjpBL8ecZFcl%2BGGXEASn%2BFMPf9I%2F395LUpOHWkAhziE5jfNz0HZeg1PklV4%2F%2FSW4z7pUf0qbf%2FiUuu%2FycHv4; QRNq_2132_connect_is_bind=0; QRNq_2132_oldtopics=D2447971D; QRNq_2132_smile=3D1; QRNq_2132_editormode_e=1; QRNq_2132_fid204=1300763812

message=%C3%B2%CB%C6%B2%BB%C4%DC%B7%A2%C1%CB%B0%C9&formhash=880ae239&subject=

===================================================================

注明:网站域名我屏蔽掉了。嘎嘎。

...全文
468 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveifa 2011-03-31
  • 打赏
  • 举报
回复
有人知道吗
JohnYale 2011-03-27
  • 打赏
  • 举报
回复
做个标记 以后备用
loveifa 2011-03-26
  • 打赏
  • 举报
回复
1L 我吧网站的cookie已经给出了哈

麻烦给个代码吧。。。

[Quote=引用 10 楼 sunnauq 的回复:]

我觉得你的问题是如何得到网站的cookie吧,先访问以下会创建cookie的页面,不是一开始就直接post

用Idhttp关联一个 IdCookieManager
var
i: integer;
begin
idhttp1.Get('http://bj.ganji.com/user/login.php?next=http://bj.ganji.com');
for i……
[/Quote]
sunnauq 2011-03-25
  • 打赏
  • 举报
回复
我觉得你的问题是如何得到网站的cookie吧,先访问以下会创建cookie的页面,不是一开始就直接post

用Idhttp关联一个 IdCookieManager
var
i: integer;
begin
idhttp1.Get('http://bj.ganji.com/user/login.php?next=http://bj.ganji.com');
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do
begin
memo1.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieName + '=' +
IdCookieManager1.CookieCollection.Items[i].CookieText);
end;

这段代码是访问赶集网的登录界面,可以得到cookie的,之后再post数据,至于post的时候会不会自动提交这些cookie暂时还没验证过,不过我觉得应该没问题
sunnauq 2011-03-25
  • 打赏
  • 举报
回复


我觉得你的问题是如何得到网站的cookie吧,先访问以下会创建cookie的页面,不是一开始就直接post

用Idhttp关联一个 IdCookieManager
var
i: integer;
begin
idhttp1.Get('http://bj.ganji.com/user/login.php?next=http://bj.ganji.com');
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do
begin
memo1.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieName + '=' +
IdCookieManager1.CookieCollection.Items[i].CookieText);
end;

这段代码是访问赶集网的登录界面,可以得到cookie的,之余post的时候会不会自动提交这些cookie暂时还没验证过,不过我觉得应该没问题
loveifa 2011-03-25
  • 打赏
  • 举报
回复
再等一天。。有人能给个代码吗?
loveifa 2011-03-24
  • 打赏
  • 举报
回复
有人知道的吗
loveifa 2011-03-22
  • 打赏
  • 举报
回复
如何使用呢?



[Quote=引用 3 楼 netcrawller 的回复:]

用Indy IdCookieManager
[/Quote]
sharebei 2011-03-22
  • 打赏
  • 举报
回复

procedure TForm1.Button1Click(Sender: TObject);
begin

idhttp1.AllowCookies:=true;
idhttp1.Request.SetHeaders;
idhttp1.Request.CustomHeaders.Text:=Trim('Cookie:123;sign=123' );
idhttp1.HandleRedirects:= true;
idhttp1.Request.UserAgent := 'OS/1.0';//自定义客户端的签名
idhttp1.request.ContentType:='application/x-www-form-urlencoded';//使用POST方式提交时候
idhttp1.Request.Referer :='http://xxx.xx.xx';
idhttp1.Request.Host:='http://xxx.xx.xx';

end;

netcrawller 2011-03-22
  • 打赏
  • 举报
回复
用Indy IdCookieManager
lght 2011-03-22
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20100704/18/b8187c1a-d70f-49b1-bdda-39067efe7a33.html
loveifa 2011-03-22
  • 打赏
  • 举报
回复
有人知道吗。。。。。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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