首頁 >後端開發 >Golang >如何防止 Go 的 HTTP 用戶端自動重新導向?

如何防止 Go 的 HTTP 用戶端自動重新導向?

Linda Hamilton
Linda Hamilton原創
2024-12-25 17:27:17500瀏覽

How Do I Prevent Automatic Redirects in Go's HTTP Client?

在Go HTTP 用戶端中停用自動重定向處理

Go HTTP 用戶端會自動遵循HTTP 重定向,這在某些情況下可能會很不方便。若要停用此行為,可以覆寫 http.Client 的 CheckRedirect 函數。

一種常見的方法是定義始終傳回錯誤的自訂 CheckRedirect 函數。但是,這需要將 HTTP 重定向視為錯誤,這可能會導致不必要的錯誤處理。

另一個解決方案是使用 ErrUseLastResponse 常數作為 CheckRedirect 函數中的回傳值。這指示 HTTP 用戶端使用最新的回應,而不遵循任何重新導向。

以下是如何使用此方法的範例:

client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
        return http.ErrUseLastResponse
    },
}

使用此配置,HTTP 用戶端將不會執行任何重新導向。遵循重定向並將返回最新回應,允許存取 HTTP Location 標頭以進行進一步處理。這種方法避免了錯誤處理的需要,並提供了更直接的方法來控制重定向行為。

以上是如何防止 Go 的 HTTP 用戶端自動重新導向?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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