首頁  >  文章  >  後端開發  >  如何在 Go 中模擬 cURL 基於 Cookie 的位置追蹤?

如何在 Go 中模擬 cURL 基於 Cookie 的位置追蹤?

DDD
DDD原創
2024-11-05 07:26:02372瀏覽

How to Emulate cURL's Cookie-Based Location Following in Go?

在Go 中模擬CURL 基於Cookie 的位置

問題:

接收重定向時(HTTP 代碼302)回應中帶有附帶的cookie,Go 用戶端如何在利用收到的cookie 時追蹤新位置?

答案:

在Go 1.1 及更高版本中, net/http/cookiejar 套件為此提供了一個解:

<code class="go">import (
    "golang.org/x/net/publicsuffix"
    "io/ioutil"
    "log"
    "net/http"
    "net/http/cookiejar"
)

func main() {
    options := cookiejar.Options{
        PublicSuffixList: publicsuffix.List,
    }
    jar, err := cookiejar.New(&options)
    if err != nil {
        log.Fatal(err)
    }
    client := http.Client{Jar: jar}
    resp, err := client.Get("http://dubbelboer.com/302cookie.php")
    if err != nil {
        log.Fatal(err)
    }
    data, err := ioutil.ReadAll(resp.Body)
    resp.Body.Close()
    if err != nil {
        log.Fatal(err)
    }
    log.Println(string(data))
}</code>

此程式碼片段透過建立儲存接收到的cookie 的cookie jar (jar) 來有效模擬CURL 基於cookie 的位置追蹤行為。當客戶端遵循重定向時,它會隨請求一起發送儲存的 cookie,從而允許它以適當的權限存取新位置。

以上是如何在 Go 中模擬 cURL 基於 Cookie 的位置追蹤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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