1、设置环境变量

在使用 Go 1.13 时,需要先设置环境变量 HTTP_PROXY 和 HTTPS_PROXY 来指定代理服务器的地址和端口。

export HTTP_PROXY=http://代理服务器地址:端口号
export HTTPS_PROXY=http://代理服务器地址:端口号
HTML

替换上面命令中的“代理服务器地址”和“端口号”为实际代理服务器的地址和端口。

2、设置零散代理

如果只需要对一部分域名或 IP 地址使用代理,可以使用 net/http 包的 Transport 字段来设置特定的代理。

proxyURL, _ := url.Parse("http://代理服务器地址:端口号")
http.DefaultTransport.(*http.Transport).Proxy = http.ProxyURL(proxyURL)
HTML

将上面的代码中的“代理服务器地址”和“端口号”替换为实际代理服务器的地址和端口。

3、设置完整代理

如果需要对所有的网络请求都使用代理,可以设置全局的 Transport。

proxyURL, _ := url.Parse("http://代理服务器地址:端口号")
httpClient := &http.Client{
    Transport: &http.Transport{
        Proxy: http.ProxyURL(proxyURL),
    },
}
HTML

将上面的代码中的“代理服务器地址”和“端口号”替换为实际代理服务器的地址和端口。

4、忽略不需要代理的请求

有些请求可能不需要通过代理,可以使用 HTTP 的 NoProxy 环境变量或通过设置 ProxyURL 属性来忽略这些请求。

proxyURL, _ := url.Parse("http://代理服务器地址:端口号")
httpClient := &http.Client{
    Transport: &http.Transport{
        Proxy: http.ProxyURL(proxyURL),
    },
}

request, _ := http.NewRequest("GET", "http://example.com", nil)
request.Proxy = nil

resp, _ := httpClient.Do(request)
HTML

上面的代码中,将 request.Proxy 属性设置为 nil,表示该请求将不会通过代理。