利用 Go 的 cookiejar 透過 Cookie 追蹤重定向
當 HTTP 請求導致 302 重定向時,維護從伺服器用於後續請求。在 Go 中,這可以透過 cookiejar 套件來實現,提供一種在保留 cookie 的同時自動追蹤重定向的便捷方法。
在此場景中,目標是使用以下設定來模擬 CURL 的行為:
使用 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中文網其他相關文章!