在 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中文網其他相關文章!