3 回答

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊
您可以修改選擇Proxy函數(shù),以便保存選定的代理。為此,您可以將 chooseProxy func 轉(zhuǎn)換為一種類型的方法,該方法將用作要保留的信息的存儲:
type proxySelector string
func (sel *proxySelector) chooseProxy(request *http.Request) (*url.URL, error) {
proxies := []string{"proxy1", "proxy2", "proxy3"}
proxyToUse := proxies[rand.Intn(len(proxies))]
*sel = proxySelector(proxyToUse) // <-----
return url.Parse(proxyToUse)
}
func main() {
var proxy proxySelector
transport := &http.Transport{Proxy: proxy.chooseProxy} // <-----
client := http.Client{Transport: transport}
request, err := http.NewRequest(http.MethodGet, "https://www.google.com", nil)
checkErr(err)
// How to know here which proxy was used? Suppose the same client will perform several requests to different URL's.
response, err := client.Do(request)
checkErr(err)
dump, _ := httputil.DumpRequest(response.Request, false)
fmt.Println(dump)
fmt.Println("Proxy:", string(proxy)) // <-----
}

TA貢獻(xiàn)1744條經(jīng)驗 獲得超4個贊

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
包含目標(biāo) URI 的請求作為參數(shù)提供給 。因此,您可以在函數(shù)中已經(jīng)擁有正確的映射,您只需要檢查vs。 那里。request
chooseProxy
chooseProxy
proxyToUse
request.URL
如果您并不真正信任此映射實際完成的代碼,則需要查看代碼外部。例如,您可以使用Wireshark查看實際的網(wǎng)絡(luò)流量,以查看訪問哪個代理。
- 3 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報