Web请求后,golang更改代理

时间:2019-02-13 09:20:57

标签: go proxy client

我可以使用具有以下代码的特定代理使用net / http包发出get请求:

proxyURL, err := url.Parse("http://111.222.333.444:80")

    if err != nil {
        fmt.Println("Bad proxy URL", err)
        return
    }

client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}}
req, _ := http.NewRequest("GET", "https://www.google.com", nil)
res, err := client.Do(req)
    if err != nil {
        fmt.Println("Error")
    }
else {
    defer res.Body.Close()
    respBody, _ := ioutil.ReadAll(res.Body) //read the response
    fmt.Println(string(respBody))
    }

阅读docs表示

  

ProxyURL返回始终返回相同URL的代理函数(用于传输)。

但是,在同一个线程中使用不同的代理服务器后,我又该如何发出另一个get请求呢?我应该使用其他代理设置创建另一个Transport对象吗?但我发现这种方式非常慢。我正在寻找的是重用Transport和Client对象,并仅更改代理URL。

最好的方法是什么?

0 个答案:

没有答案