Home >Backend Development >Golang >How to Create a Go HTTP Client with Proxy Authentication?
Go HTTP Proxy With Authentication
When using a proxy with authentication, the default HTTP request method does not allow for adding authorization headers post-request. This can pose challenges when integrating proxy support into existing third-party code.
In such scenarios, an alternative approach is to create a custom HTTP client with the required proxy configuration. This client can then be used in place of the default HTTP client in the third-party package.
Here's an example of how to create a custom HTTP client with proxy authentication using the http package:
import ( "net/http" "net/url" ) // Create a proxy URL with authentication proxyURL := &url.URL{ Scheme: "http", User: url.UserPassword("username", "password"), Host: "proxy.com:8080", } // Create a custom HTTP client with the proxy client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, } // Use the custom client with the third-party package resp, err := client.PostForm(method, params) if err != nil { // Handle error }
Alternatively, the URL can be parsed directly:
proxyURL, _ := url.Parse("http://username:password@proxy.com:8080") client := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), }, }
This method allows you to specify the necessary authentication credentials for the proxy within the client configuration.
The above is the detailed content of How to Create a Go HTTP Client with Proxy Authentication?. For more information, please follow other related articles on the PHP Chinese website!