go - 正确发送 https Cookie
问题描述
我正在构建一个与其他服务器交互的小型服务。我必须向该服务器发送一个带有会话令牌的 cookie。以后用它来做我的识别。但是那个cookie没有设置。并且没有 cookie 被发回。该请求是通过 https 协议发出的。
这是代码:
// ---> create Client
client := &http.Client{}
// ---> create Request
req, err := http.NewRequest("GET", indexURL, nil)
if err != nil {
fmt.Printf("NewRequest fail: %s\n", err)
}
// ---> define a cookie
cookie := http.Cookie{Name: "sess", Value: "value", HttpOnly: true, MaxAge: 0, Path: "/", Domain: "the.server.domain"}
req.AddCookie(&cookie)
// ---> fire in the hole!
resp, err := client.Do(req)
if err != nil {
fmt.Printf("client.Do fail: %s\n", err)
}
defer resp.Body.Close()
// ---> read the cookies
fmt.Printf("cookies: %d\n", len(resp.Cookies())) // prints zero (((
// ---> not even launched ((
for _, cookie := range resp.Cookies() {
fmt.Printf("GET cookie[%s] = %s\n", cookie.Name, cookie.Value)
}
我做错了什么?
我也试过
req.Header.Set(`Cookie`, `sess=value`)
但没有效果
解决方案
您的代码看起来不错,这一定是服务器的问题。即使不发送 cookie,我也可以取回 cookie:
package main
import "net/http"
func main() {
r, e := http.Get("https://stackoverflow.com")
if e != nil {
panic(e)
}
defer r.Body.Close()
c := r.Cookies()
println(len(c) == 1)
}
推荐阅读
- python - 连接两个文件中的数据
- python - Python - 有没有办法将结果输出到熊猫 DF
- java - 打电话后重启手机
- python - Uvicorn 是否支持统计服务器机制?
- python - Python回溯,如何隐藏绝对路径?
- google-chrome - 为什么 Chrome 会知道鼠标点击的时间?
- windows - Qt 应用程序不加载 qsvg.dll
- react-native - 如何在 React Native for android 中塑造阴影?
- html - 如何将我的 grid-column-start 扩展到 grid-column-end 以恰好占据当前网格大小的一半
- matplotlib - Jupyter 笔记本不再显示交互式 matplotlib 图