VBA代码效果很好
Set oFields = CreateObject("Scripting.Dictionary")
With oFields
.Add "dor_user", "51"
.Add "login", "nvivc"
.Add "pass", "51256"
End With
For Each sName In oFields
oFields(sName) = sName & "=" & EncodeUriComponent(oFields(sName))
Next
sPayLoad = Join(oFields.Items(), "&")
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "http://kasant.gvc.oao.rzd:8888/kasant/login?", False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.setRequestHeader "Content-Length", LenB(sPayLoad)
.Send (sPayLoad)
Do While .readyState <> 4
DoEvents
Loop
End With
登录成功 过滤器
POST http://kasant.gvc.oao.rzd:8888/kasant/login? HTTP / 1.1
接受: /
Content-Type:应用程序/ x-www-form-urlencoded
接受语言:ru,en-US; q = 0.7,en; q = 0.3
UA-CPU:AMD64
接受编码:gzip,放气
User-Agent:Mozilla / 4.0(compatible; MSIE 7.0; Windows NT 10.0; Win64; x64;三叉戟/7.0; .NET4.0C; .NET4.0E)
主持人:kasant.gvc.oao.rzd:8888
内容长度:34
连接:保持活动
编译指示:无缓存
Cookie:dor_user =“”; kasant_pass =“”; kasant_user =“”; kasant_pass_save = false; JSESSIONID = 0000VSeSKuzaru0vpwzeeSQF29Y:1ak0n0hlm
dor_user = 51&login = nvivc&pass = 51256
JSESSIONID = 0000VSeSKuzaru0vpwzeeSQF29Y:1ak0n0hlm
代码Golang
urlLogin := "http://kasant.gvc.oao.rzd:8888/kasant/login?"
formData := url.Values{
"dor_user": {"51"},
"login": {"nvivc"},
"pass": {"51256"},
}
client := &http.Client{}
req, _ := http.NewRequest("POST", urlLogin, bytes.NewBufferString(formData.Encode()))
req.Header.Set("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)")
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
resp, _ := client.Do(req)
defer resp.Body.Close()
FIDDLER
POST http://kasant.gvc.oao.rzd:8888/kasant/login? HTTP / 1.1主机:
kasant.gvc.oao.rzd:8888用户代理:Mozilla / 4.0(兼容; MSIE 7.0;
Windows NT 10.0; WOW64;三叉戟/7.0; .NET4.0C; .NET4.0E)
内容长度:34内容类型:application / x-www-form-urlencoded
接受编码:gzip
dor_user = 51&login = nvivc&pass = 51256
缺少cookie和 JSESSIONID 。登录失败!!! 告诉我这是什么错误?
答案 0 :(得分:0)
感谢@Peter
urlLogin := "http://kasant.gvc.oao.rzd:8888/kasant/login?"
formData := url.Values{
"dor_user": {"51"},
"login": {"nvivc"},
"pass": {"51256"},
}
cookieJar, _ := cookiejar.New(nil)
client := &http.Client{
Jar: cookieJar,
}
respp, _ := client.Post(urlLogin, "application/x-www-form-urlencoded", bytes.NewBufferString(formData.Encode()))
defer respp.Body.Close()