为了账号安全,请及时绑定邮箱和手机立即绑定

我如何验证用户:在 golang 中传递代理

我如何验证用户:在 golang 中传递代理

Go
一只甜甜圈 2022-07-04 10:05:07
我正在尝试在 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)


查看完整回答
反对 回复 2022-07-04
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信