第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何知道http客戶端在給定請求中使用的代理

如何知道http客戶端在給定請求中使用的代理

Go
喵喵時光機(jī) 2022-08-01 09:52:24
我正在通過一些代理服務(wù)器執(zhí)行一些請求。定義要使用的代理 URL 的函數(shù)將從代理列表中隨機(jī)選擇。我想知道對于給定的請求,正在使用哪個代理URL。據(jù)我所知,使用代理服務(wù)器時,http標(biāo)頭保持不變,但tcp標(biāo)頭是更改的標(biāo)頭。下面是一些代碼來說明它(為簡單起見,沒有錯誤處理):func main() {    transport := &http.Transport{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)}func chooseProxy(request *http.Request) (*url.URL, error) {    proxies := []string{"proxy1", "proxy2", "proxy3"}    proxyToUse := proxies[rand.Intn(len(proxies))]    return url.Parse(proxyToUse)}我假設(shè)即使使用相同的客戶端,也會為每個請求調(diào)用傳輸中的 Proxy 函數(shù),如“Proxy 指定一個函數(shù)以返回給定請求的代理”的文檔。我說的對嗎?
查看完整描述

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))  // <-----

}


查看完整回答
反對 回復(fù) 2022-08-01
?
慕無忌1623718

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

一些HTTP代理添加了一個標(biāo)頭來告訴它們是誰。Via

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Via


查看完整回答
反對 回復(fù) 2022-08-01
?
烙印99

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

包含目標(biāo) URI 的請求作為參數(shù)提供給 。因此,您可以在函數(shù)中已經(jīng)擁有正確的映射,您只需要檢查vs。 那里。requestchooseProxychooseProxyproxyToUserequest.URL

如果您并不真正信任此映射實際完成的代碼,則需要查看代碼外部。例如,您可以使用Wireshark查看實際的網(wǎng)絡(luò)流量,以查看訪問哪個代理。


查看完整回答
反對 回復(fù) 2022-08-01
  • 3 回答
  • 0 關(guān)注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號