[英]Get cookie from Golang post
如何在 GoLang 中发送帖子?
我在ruby
有以下代码,现在我需要转移到 Golang。
http = Net::HTTP.new('example.com', 443)
http.use_ssl = true
http
path = '/abc/login'
data = 'data[Account][username]=myusername&data[Account][passwd]=mypassword'
resp, _ = http.post(path, data)
这样,我可以在登录请求后获取 cookie。
但我不知道如何在 Go 中发送 post 请求。
我已经编写了以下代码。
path := "https://example.com/abc/login"
data := strings.NewReader("data[Account][username]=myusername&data[Account][passwd]=mypassword")
resp, err := http.Post(path, "text/html; charset=UTF-8", data)
这似乎不正确,因为我没有找到获取 cookie 的方法。
要获取 cookie,您应该调用属于http.Response
的Cookies()
方法,试试这个:
for _, cookie := range resp.Cookies() {
fmt.Println("Found a cookie named:", cookie.Name)
}
请参阅此处的Cookie
字段。
//创建客户端
client=http.client{}
//创建变量
var cookie []*http.Cookie
// 创建请求
req, _ := http.NewRequest("GET", url, nil)
resp, err := client.Do(req) //send request
if err != nil {
return
}
cookie = resp.Cookies() //save cookies
// 创建新请求
req, _ := http.NewRequest("POST", url, nil)
for i := range cookie {
req.AddCookie(cookie[i])
}
resp, err := client.Do(req) //send request
if err != nil {
return
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.