設定具有HTTP 請求身份驗證的代理可能具有挑戰性,尤其是將其合併到現有第三方代碼中時。本文深入探討了嘗試將代理身份驗證新增至現有程式碼庫時遇到的特定問題。
問題陳述:
提供的程式碼片段建立了一個沒有驗證的 HTTP 代理程式使用具有 ProxyURL 函數的傳輸物件。但是,在 POST 請求後向回應對像新增 Proxy-Authorization 標頭無法對代理進行驗證。
解決方案:
要解決此問題,請直接指定傳輸物件中帶有驗證憑證的代理 URL。
// Create an HTTP client with proxy authentication client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(&url.URL{ Scheme: "http", User: url.UserPassword("username", "password"), Host: "proxy.com:8080", }), }, } // Use the client to make requests with proxy authentication resp, err := client.PostForm(method, params)
或者,也可以解析代理 URL
// Parse the proxy URL proxyURL, _ := url.Parse("http://username:password@proxy.com:8080") // Create an HTTP client with proxy authentication client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } // Use the client to make requests with proxy authentication resp, err := client.PostForm(method, params)
此方法可確保將代理憑證合併到傳輸物件中,從而允許 HTTP POST 要求使用經過驗證的代理程式。
以上是如何在 Go 中正確設定 HTTP 代理驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!