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