How do I send the post in GoLang?
I have the following code in ruby
, now I need to transfer into 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)
This way, I can get the cookie after login request.
But I don't know how to send a post request in Go.
I've written the following code.
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)
It seems not correct, because I didn't find a way to get cookie.
//Create Client
client=http.client{}
//Create Varible
var cookie []*http.Cookie
// Create Request
req, _ := http.NewRequest("GET", url, nil)
resp, err := client.Do(req) //send request
if err != nil {
return
}
cookie = resp.Cookies() //save cookies
// Create New Request
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
}
To get the cookies you should call the Cookies()
method that's part of http.Response
, try this:
for _, cookie := range resp.Cookies() {
fmt.Println("Found a cookie named:", cookie.Name)
}
See the Cookie
fields here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With