如何模拟post方法来登陆需要用户名和密码的网站(300分)

  • 主题发起人 主题发起人 truth_seeker
  • 开始时间 开始时间
T

truth_seeker

Unregistered / Unconfirmed
GUEST, unregistred user!
如何模拟post方法来登陆需要用户名和密码的网站?
比如:登陆www.chinahr.com
用indy 提供的httpclient demo无法登陆
 
如果不知道提交的数据格式和附加值是无法登陆的。
 
她没有post么?
nmhttp可是有post的。
直接post就可以了。
 
procedure SendUrl(Url,Data: string;
var ADataIn: TStringList);
var
Response : TStringStream;
tmpStr: TStringList;
tmpHTTP: TIdHTTP;
begin
tmpHTTP:= TIdHTTP.Create(self);
try
tmpHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
Response := TStringStream.Create('');
tmpStr:= TStringList.Create;
tmpStr.Clear;
tmpStr.Add(Data);

tmpHTTP.Post(Url, tmpStr, Response);
ADataIn.Text:= Response.DataString;
Response.Free;
tmpStr.Free;
finally
tmpHTTP.Free;
end;

end;

肯定可以成功,我已经试过了。
其中,
url: http://my.chinahr.com/login.asp
data: action=http://my.chinahr.com/login.asp&txtname=你的用户名&UserName=&txtpwd=你的密码&PassWord=&txtwho=1
ADataIn: 返回页面,要先创建。
 
多谢捧场,我先看看。。。
 
to alert:
我试过了,chinahr.com没有问题,
但是下面的网站不行:http://www.bitaec.com/re_register.asp
你能帮我看看吗?用户名称:abcdef,密码:123456
 
不同网站提交登录的页面不同,页面里包括的字段也不同,你可以自己分析一下,参照我的例子很容易搞定。
 
参照你的例子,我原来的没有加上content-type字段。加上之后可以登陆chinahr了,
但是我用同样的程序登陆http://www.bitaec.com/re_register.asp却不行。
请帮我分析一下,谢谢!
分数马上送到。。。
 
还有谁可以帮我啊????
 
你找一个网络分析程序, 原来我一直用的是BO带的, 然后正常运行登陆, 你就知道
应该给他发什么东西了
 
还有谁可以帮我啊????
 
to alert:
可以帮我试验一下我说的网址吗?
 
http://www.bitaec.com/re_register.asp?action=re_register.asp&FromWher=&T1=abcdef&T2=123456&B1=登 录
 
to alert:
好象还不行,你用你的程序试验了吗?
如果解决了www.bitaec.com的问题,请也到<a href=http://www.delphibbs.com/delphibbs/dispq.asp?lid=1194151>这里</a>来回答,可以获得更多分数
 
到底有没有人帮我啊?
 
解决问题了,原来是网页重定向后需要将cookie写回去。

 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部