我正在尝试在 golang 的请求中使用用户:传递代理,当我运行它时,我得到了“需要代理身份验证”这是我的代码: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))}同样,当我运行它时,我Time_here Get "https://site_here/": Proxy Authentication Required 已经被困了几个小时,而且我不确定如何在 Go 中执行此操作,我可以在 JS 中使用 var 为用户执行此操作并通过但这个是在 Golang 中给我一些麻烦
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
您正在将代理身份验证标头添加到将发送到目标服务器的请求中。您要做的就是将此标头添加到transport.
替换req.Header.Add("Proxy-Authorization", basicAuth)为
transport.ProxyConnectHeader = http.Header{}
transport.ProxyConnectHeader.Add("Proxy-Authorization", basicAuth)
- 1 回答
- 0 关注
- 129 浏览
添加回答
举报
0/150
提交
取消