我不能向Golang发送邮件请求?
VBA代码运行良好我不能向Golang发送邮件请求?,go,Go,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(oF
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
小提琴手
邮寄?HTTP/1.1主机:
kasant.gvc.oao.rzd:8888用户代理:Mozilla/4.0兼容;msie7.0
windowsnt10.0;WOW64;三叉戟/7.0。NET4.0C。NET4.0E
内容长度:34内容类型:application/x-www-form-urlencoded
接受编码:gzip
dor_user=51&login=nvivc&pass=51256
缺少Cookie和JSSessionID。登录失败!!!
告诉我错误是什么???谢谢@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()
这个例子教你如何在围棋中发送GET和POST。您没有在请求中设置任何cookie,因此它不会发送任何cookie。如果需要设置cookies,请设置它们:@Adrian JSESSIONID始终不同,此值在每个会话期间在服务器端形成。Cookie没有在VBA代码中列出,但一切都很好。它们可能来自VB代码中的其他地方,可能是从以前对同一站点的请求中保存的。Cookie不会从任何地方出现。是的,Cookie起源于服务器端。客户端获取一个设置的Cookie头,保存值,并在后续请求时在Cookie头中返回值。这意味着,从逻辑上讲,客户端向服务器发出的第一个请求将不包含cookie。
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()