首頁 > 後端開發 > Golang > 如何在 Go 中處理帶有 Cookie 的 HTTP POST 請求?

如何在 Go 中處理帶有 Cookie 的 HTTP POST 請求?

Patricia Arquette
發布: 2024-12-27 22:01:11
原創
243 人瀏覽過

How to Handle HTTP POST Requests with Cookies in Go?

Go:帶有 Cookie 的 HTTP Post

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板