我正在嘗試在 golang 的請求中使用用戶:傳遞代理,當(dāng)我運(yùn)行它時(shí),我得到了“需要代理身份驗(yàn)證”這是我的代碼:var ip string = "123.45.67.890:54400:user:pass"func main() { proxy := "http://" + ip proxyURL, err := url.Parse(proxy) if err != nil { log.Fatal(err) } urlStr := site url, err := url.Parse(urlStr) if err != nil { log.Fatal(err) } transport := &http.Transport{ Proxy: http.ProxyURL(proxyURL), } jar, _ := cookiejar.New(nil) client := &http.Client{ Jar: jar, Transport: transport, } req, _ := http.NewRequest("GET", url.String(), nil) if err != nil { log.Fatal(err) } auth := "johndoe2x:johndoe2x" basicAuth := "Basic " + base64.StdEncoding.EncodeToString([]byte(auth)) req.Header.Add("Proxy-Authorization", basicAuth) req.Header.Add("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9") req.Header.Add("accept-language", "en-US,en;q=0.9") req.Header.Add("upgrade-insecure-requests", "1") req.Header.Add("user-agent", userAgent) res, err := client.Do(req) if err != nil { log.Fatal(err) } log.Println("statusCode:", res.StatusCode) data, err := ioutil.ReadAll(res.Body) if err != nil { log.Fatal(err) } log.Println(string(data))}同樣,當(dāng)我運(yùn)行它時(shí),我Time_here Get "https://site_here/": Proxy Authentication Required 已經(jīng)被困了幾個(gè)小時(shí),而且我不確定如何在 Go 中執(zhí)行此操作,我可以在 JS 中使用 var 為用戶執(zhí)行此操作并通過但這個(gè)是在 Golang 中給我一些麻煩
1 回答

SMILET
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
您正在將代理身份驗(yàn)證標(biāo)頭添加到將發(fā)送到目標(biāo)服務(wù)器的請求中。您要做的就是將此標(biāo)頭添加到transport.
替換req.Header.Add("Proxy-Authorization", basicAuth)為
transport.ProxyConnectHeader = http.Header{}
transport.ProxyConnectHeader.Add("Proxy-Authorization", basicAuth)
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)
0/150
提交
取消