首頁 >後端開發 >Golang >如何修復 Go 基本身份驗證中的「不支援的協定方案」錯誤?

如何修復 Go 基本身份驗證中的「不支援的協定方案」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-24 03:24:10976瀏覽

How to Fix

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

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