繁体   English   中英

从 Golang 帖子中获取 cookie

[英]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.ResponseCookies()方法,试试这个:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM