首頁 >後端開發 >Golang >如何使用 Go 的 CookieJar 來追蹤重定向,同時保留 cookie?

如何使用 Go 的 CookieJar 來追蹤重定向,同時保留 cookie?

Patricia Arquette
Patricia Arquette原創
2024-11-05 18:35:02932瀏覽

How can Go's CookieJar be used to follow redirects while preserving cookies?

利用 Go 的 cookiejar 透過 Cookie 追蹤重定向

當 HTTP 請求導致 302 重定向時,維護從伺服器用於後續請求。在 Go 中,這可以透過 cookiejar 套件來實現,提供一種在保留 cookie 的同時自動追蹤重定向的便捷方法。

在此場景中,目標是使用以下設定來模擬 CURL 的行為:

  • COOKIEFILE = "": 禁止將cookie寫入磁碟。
  • AUTOREFERER = 1: 自動設定Referer header.
  • FOLLOWLOCATION = 1: 遵循重定向。

使用 cookiejar 實作

使用 Go 1.1,net/http/cookiejar 套件可以無縫地處理這些任務。以下是示範其用法的程式碼範例:

<code class="go">package main

import (
    "golang.org/x/net/publicsuffix"
    "io/ioutil"
    "log"
    "net/http"
    "net/http/cookiejar"
)

func main() {
    // Configure the cookie jar.
    options := cookiejar.Options{
        PublicSuffixList: publicsuffix.List,
    }
    jar, err := cookiejar.New(&options)
    if err != nil {
        log.Fatal(err)
    }

    // Create an HTTP client with the cookie jar.
    client := http.Client{Jar: jar}

    // Make the request.
    resp, err := client.Get("http://dubbelboer.com/302cookie.php")
    if err != nil {
        log.Fatal(err)
    }

    // Read the response body.
    data, err := ioutil.ReadAll(resp.Body)
    resp.Body.Close()
    if err != nil {
        log.Fatal(err)
    }

    // Log the response.
    log.Println(string(data))
}</code>

在此範例中,cookie jar 配置為遵循公共後綴列表,確保正確的基於網域的 cookie 處理。使用 jar 建立用戶端,並向指定的 URL 發出 GET 請求。讀取並記錄回應正文,證明 cookie jar 有效地處理重定向並保留 cookie。

以上是如何使用 Go 的 CookieJar 來追蹤重定向,同時保留 cookie?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn