我不能向Golang发送邮件请求?

我不能向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

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
小提琴手

邮寄?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()