在 Go 中,可以使用 Go 1.1 中引入的 cookiejar 包来管理 HTTP 请求的 cookie。通过创建 CookieJar 并将其与 HTTP 客户端关联,可以自动存储和检索 cookie 以供后续请求。
以下示例演示如何登录网站、存储cookie,并使用存储的cookie访问另一个页面:
package main import ( "fmt" "net/http" "net/http/cookiejar" "net/url" ) func main() { // Create a new cookie jar. jar, err := cookiejar.New(nil) if err != nil { panic(err) } // Create an HTTP client that uses the cookie jar. client := &http.Client{ Jar: jar, } // Login to the website. loginPostUrl := "http://www.example.com/login" values := url.Values{} values.Set("username", "my_username") values.Set("password", "my_password") resp, err := client.PostForm(loginPostUrl, values) if err != nil { panic(err) } defer resp.Body.Close() // View the user's bill. viewBillUrl := "http://www.example.com/my/bill" resp, err = client.Get(viewBillUrl) if err != nil { panic(err) } defer resp.Body.Close() // Read the bill's contents. billContents, err := resp.Body.ReadString('\n') if err != nil { panic(err) } fmt.Println(billContents) }
在这个例子中,CookieJar用于自动存储登录请求返回的cookie。然后,这些 cookie 用于授权对 /my/bill 页面的后续请求。
以上是如何在 Go 中处理带有 Cookie 的 HTTP POST 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!