找回密码
 加入
搜索
查看: 2159|回复: 5

[网络通信] 模拟网站登录问题!

[复制链接]
发表于 2021-8-21 15:49:48 | 显示全部楼层 |阅读模式
悬赏20金钱已解决
想要用POST方法模拟登录网站:https://www.joinquant.com/user/login/index?type=login
fiddler抓到的信息是这样的:

POST https://www.joinquant.com/user/login/doLogin HTTP/1.1
Host: www.joinquant.com
Connection: keep-alive
Content-Length: 65
Accept: application/json, text/javascript, */*; q=0.01
Origin: https://www.joinquant.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36
DNT: 1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: https://www.joinquant.com/user/login/index?reason=logout
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: uid=CiyeXGEWL8YTgzQYDn9UAg==; gr_user_id=8e41d9d1-2727-427b-afac-5912c0ff250f; UM_distinctid=17b3ec16d62925-02bf278d6e4cda-366b4108-1fa400-17b3ec16d63460; tips=1; token=f1c38fa52972559842c6d03f162e400571248e7a; Hm_lvt_aab1c038280787bd3547c63800577e6b=162946a566feb9b09=aef23148-3cb9-4233-a3bf-fe4a121f3d27; gr_cs1_aef23148-3cb9-4233-a3bf-fe4a121f3d27=user_id%3A1e75a5662731496ba533eb7072aa5baf; gr_session_id_949f6a566feb9b09_aef23148-3cb9-4233-a3bf-fe4a121f3d27=true; PHPSESSID=anb1v7lqo01rm9ml6j5hn9l1n7; Hm_lpvt_aab1c038280787bd3547c63800577e6b=1629527603

CyLoginForm%5Busername%5D=xxxxxxxxxxx&CyLoginForm%5Bpwd%5D=xxxxxx




试了好久都没能成功。

最佳答案

发表于 2021-8-21 15:49:49 | 显示全部楼层
Local $sDomain = 'https://www.joinquant.com', $sPhone = '', $sPassWord = ''
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open('GET', $sDomain, False)
$oHTTP.Send()
$oHTTP.Open('POST', $sDomain & '/user/login/doLogin', False)
$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
$oHTTP.SetRequestHeader('Referer', $sDomain & '/user/login/index')
$oHTTP.Send('CyLoginForm%5Busername%5D=' & $sPhone & '&CyLoginForm%5Bpwd%5D=' & $sPassWord)
ConsoleWrite($oHTTP.ResponseText & @CRLF)
$oHTTP.Open('GET', $sDomain & '/user/msg/list?cate=sys', False)
$oHTTP.Send()
IF StringInStr(BinaryToString($oHTTP.ResponseBody, 4), '系统消息') Then MsgBox(0, '', 'success')
 楼主| 发表于 2021-8-23 20:53:05 | 显示全部楼层

试了一下,成功,先谢谢,再研究代码!
 楼主| 发表于 2021-8-27 15:08:05 | 显示全部楼层

请问,第3、4行

$oHTTP.Open('GET', $sDomain, False)
$oHTTP.Send()

这两句是做什么用的?删掉了还真不行。
发表于 2021-8-29 16:29:01 | 显示全部楼层
叶子2019 发表于 2021-8-27 15:08
请问,第3、4行

$oHTTP.Open('GET', $sDomain, False)

init cookie

点评

谢谢  发表于 2021-9-5 15:42

评分

参与人数 1金钱 +10 收起 理由
叶子2019 + 10

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-28 22:56 , Processed in 0.073580 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表