Ruby 从Golang post获取cookie

Ruby 从Golang post获取cookie,ruby,go,Ruby,Go,我如何在戈朗寄信 我在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) 这样,我可以在请求登录后获

我如何在戈朗寄信

我在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,您应该调用
cookies()
方法,该方法是
http.Response的一部分,请尝试以下操作:

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 
              }

你的标题和问题根本不匹配。你是在问如何发送帖子,还是如何获取cookie?
data[Account][username]=myusername&data[Account][passwd]=mypassword
一点也不
text/html
。@Flimzy,实际上,我不确定如何发送帖子,所以我可以获取cookie。我不知道为什么会引起这个问题。它可能有一些post错误,在获取cookie时可能有错误。@mkopriva,我在google chrome中发布,它声明内容类型为
text/html
。那么
data[Account][username]=myusername和data[Account][passwd]=mypassword
的正确格式是什么呢?@CodaChang,如果没有手动设置内容类型头,ruby的http.post(path,data)会自动将其设置为
application/x-www-form-urlencoded