Go 中的HTTP 基本驗證:常見錯誤故障排除
嘗試使用提供的程式碼實現基本HTTP 驗證時,發生錯誤: “不支援的協議方案''”。這可以追溯到創建請求對象時代碼中的疏忽。
要解決此錯誤,請確保在請求 URL 中指定正確的方案。給出的範例嘗試在不指定協定方案的情況下向“mydomain.example”發出請求,從而導致錯誤。
要修正此問題,請修改程式碼以明確指定HTTPS 方案,如下所示:
req, err := http.NewRequest("GET", "https://mydomain.example", nil)
此外,值得注意的是,Go 的HTTP 用戶端正在處理重定向時可能會遇到另一個問題。預設情況下,用戶端在重定向期間不會保留自訂標頭,包括基本授權標頭。
要避免此行為,您可以定義一個自訂重定向策略函數,在重定向期間明確新增授權標頭。這可確保在整個重定向過程中保留身份驗證憑證。
以下是自訂重定向策略函數的範例:
func redirectPolicyFunc(req *http.Request, via []*http.Request) error { req.Header.Add("Authorization", "Basic " + basicAuth(username, password)) return nil }
透過在HTTP 用戶端中使用此自訂策略,您可以確保在重定向期間正確處理基本授權標頭,從而實現無縫身份驗證。
以上是如何修復 Go 基本身份驗證中的「不支援的協定方案」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!