1、设置环境变量

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

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

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

2、设置零散代理

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

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

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

3、设置完整代理

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

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

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

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)

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