我正在尝试查看来自对谷歌的请求的cookieJar响应的内容:
package main
import (
"fmt"
"log"
"net/http"
"net/http/cookiejar"
"net/url"
)
func main() {
jar, err := cookiejar.New(nil)
if err != nil {
log.Fatal(err)
}
client := http.Client{Jar: jar}
resp, err := client.Get("https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Ffeature%3Dsign_in_button%26hl%3Den%26action_handle_signin%3Dtrue%26next%3D%252F%26app%3Ddesktop&service=youtube&sacu=1&passive=1209600&ignoreShadow=0&acui=0#identifier")
if err != nil {
log.Fatal(err)
}
fmt.Println(resp.Cookies())
s := ".google.com"
u, err := url.Parse(s)
fmt.Println(client.Jar.Cookies(u))
}响应是一个空白数组,但我可以看到设置了cookie。如何在Golang中查看cookieJar的内容?
发布于 2016-02-24 14:41:59
不幸的是,std库中的cookie jar是完全不透明的,只能通过(非通配符)URL进行查询。
发布于 2020-04-16 05:36:55
虽然Volker在技术上是正确的,因为net/http/cookiejar实现是不透明的,但http.Client.Jar字段是一个接口(http.Client.CookieJar)。
因此,可以定义和使用提供列表函数或将URL映射公开到cookies的实现。这样的实现应该基于std库的实现,以利用它实现的安全特性。
如果您对此感兴趣,我可能会提供一些示例代码。
https://stackoverflow.com/questions/35593920
复制相似问题