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 중국어 웹사이트의 기타 관련 기사를 참조하세요!