unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, IdCookieManager;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
IdHTTP1: TIdHTTP;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
IdCookieManager1: TIdCookieManager;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetRandomPassword(ALen: Integer): string;
var
str: string;
begin
Randomize;
str := '***********abcdefghijklmnopqrstuvwxyz';
Result := '';
repeat
Result := Result + str[Random(Length(str)) + 1];
until (Length(Result) = ALen);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
S: String; Cookie: TStrings;dl:TStrings;
begin
Edit1.Text:=GetRandomPassword(8);
Cookie:=TStringList.Create;
Cookie.Add('pusername='+ EdIt1.TEXT);
Cookie.Add('ppassword=***********');
Cookie.Add('ppassword1=***********');
Cookie.Add('email=drtgdfg@163.com');
Cookie.Add('ervice=http%3A%2F%2Flogin.donews.com%2Finfo.php');
Cookie.Add('Submit=%CC%E1++%BD%BB');
S := idhttp1.POST('http://login.donews.com/reg.php',Cookie); //一句代码
if Pos('注册成功', s) > 1 then //判断部分
form1.label2.caption:='注册成功!'
else
if Pos('注册Donews通行证', S) > 1
then
form1.label2.caption:='注册失败!'
else
form1.label2.caption:='已关闭注册,注册失败!';
dl:=TStringList.Create;
dl.Add('service=http://login.donews.com/info.php');
dl.Add('user_name='+ EdIt1.TEXT+'@donews.com');
dl.Add('password=***********');
idhttp1.POST('http://passport.donews.com/login',dl);//登陆获得COOKIE
sleep(1500);
dhttp1.get('http://hi.donews.com/vote.jsp?id='+ EdIt2.TEXT);
end;
end.
当执行idhttp1.POST('http://passport.donews.com/login',dl); 后,我抓包得知有一大堆的Set-Cookie,可是在提交dhttp1.get('http://hi.donews.com/vote.jsp?id='+ EdIt2.TEXT);
时发现那些Cookie并没有提交上去,这改怎么解决..
我在网上找了,只知道使用CookieManager来获取Cookie,但是我没有使用过这个控件,还请大虾们发发代码。
參考答案:idhttp1.POST('',dl);
dhttp1.get(''+ EdIt2.TEXT);
两个url不一样,cookie 内容也不一样。
也就是说 cookie 是跟url邦定的