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 中国語 Web サイトの他の関連記事を参照してください。