导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2010/4/5 15:25:16
标题:
如何在idhttp1使用WPE查出的信息进行网页登录
浏览:2236
加入我的收藏
楼主:
WPE中查出的信息如下: POST /login.php? HTTP/1.1..Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*..Referer: http://bbs.hualongxiang.com/login.php?..Accept-Language: zh-cn..Con forward=&jumpurl=http%3A%2F%2Fbbs.hualongxiang.com%2Findex.php&step=2&lgt=0&pwuser=wsxzz_1998&pwpwd=aaaabbbb&hideid=0&cktime=31536000&submit=%B5%C7%C2%BC 请问如何编程利用idhttp1实现自动登录
----------------------------------------------
-
作者:
2010/4/5 15:58:04
1楼:
是用webbrowser实现网页登录 ,还是用idhttp登录 拿到登录 后的网页源码?
----------------------------------------------
-Delphi Tips Study
作者:
2010/4/5 17:01:57
2楼:
用idhttp登录,就是不知道代码怎么写啊??? 我写了很多就是不正确啊
----------------------------------------------
-
作者:
2010/4/5 19:23:48
3楼:
网址是http://bbs.hualongxiang.com/login.phi 用户名wsxzz_1998 密码是aaaabbbb
----------------------------------------------
-
作者:
2010/4/6 23:44:08
4楼:
procedure TForm1.Button1Click(Sender: TObject); var code: string; done: Boolean; postList: TStrings; Response: TStringStream; begin memo1.clear; // 开始登录代码 Response := TStringStream.Create('', TEncoding.UTF8); postList := TStringList.Create; try IdHTTP1.HandleRedirects := True; postList.add('cktime=31536000'); postList.add('forward='); postList.add('hideid=0'); postList.add('jumpurl=http://bbs.hualongxiang.com/index.php'); postList.add('lgt=0'); postList.add('pwpwd=aaaabbbb'); postList.add('pwuser=wsxzz_1998'); postList.add('step=2'); postList.add('submit=¼'); IdHTTP1.Post('http://bbs.hualongxiang.com/login.php& #39;, postList, Response); done := True; except done := false; end; if (done) and (Pos('200 OK', IdHTTP1.ResponseText) <> 0) then begin code := IdHTTP1.Get('http://bbs.hualongxiang.com/index.php& #39;); memo1.lines.add(code); end else begin memo1.lines.add('登录失败,失败代码:' + IdHTTP1.Response.RawHeaders.Text); end; Response.Free; postList.Free; end; 拿到的信息中有如下代码: <span class="cl333"><b><a href="http://jia.hualongxiang.com/u.php?action=show" ; style="color:#333">wsxzz_1998</a>,您好!</b></span><a href="login.php?action=quit&verify=761c2a99">[退出]</a> 我想应当是正确登录了
----------------------------------------------
-Delphi Tips Study
作者:
2010/4/8 12:38:41
5楼:
楼上的高手能不能说一说为什么叫加post网址里面要加入“'”,这个从什么地方知道的啊????能详细说一说吗????
----------------------------------------------
-
作者:
2010/4/8 13:06:48
6楼:
Response := TStringStream.Create('', TEncoding.UTF8); 这个提示不对 IdHTTP1.Post('http://bbs.hualongxiang.com/login.php', postList, Response);这个也不对,postlist前面的逗号再前面有分号
----------------------------------------------
-
作者:
2010/4/8 13:53:42
7楼:
上面是2010下做的,delphi7自带的indy好象也不得,要用delphi7就升级一下indy ,Response := TStringStream.Create('', TEncoding.UTF8); 改成 Response := TStringStream.Create(' '); 装个httpwatch就知道为什么要加这些东西了 论坛上有些代码显示乱码,写我博客上了,自己去看一下吧 http://www.freedelphitips.com/log-inwebsite-using-idhttp.html
----------------------------------------------
-Delphi Tips Study
作者:
2010/4/8 14:56:29
8楼:
windmil 你真的太热心了啊,非常感谢,学到不少东西了
----------------------------------------------
-
作者:
zhpss (TIGER)
▲▲▲▲▲
-
普通会员
2010/10/9 12:03:36
9楼:
我用一个不存在的ID登录。也会返回20OK。
----------------------------------------------
-
作者:
2011/2/26 1:55:20
10楼:
返回20OK。 是指页面存在.并不是指登陆成功. 登陆成功了你得看POST后得到的源文件中去查找特征
----------------------------------------------
-