微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Golang中认证用户:通过代理

如何解决如何在Golang中认证用户:通过代理

我正在golang的请求中尝试使用user:pass代理,运行该代理时我会收到“需要代理身份验证”

这是我的代码

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中带来了一些麻烦>

谢谢!

解决方法

您正在将代理身份验证标头添加到将发送到目标服务器的请求中。您要做的就是将此标头添加到transport

req.Header.Add("Proxy-Authorization",basicAuth)替换为

transport.ProxyConnectHeader = http.Header{}
transport.ProxyConnectHeader.Add("Proxy-Authorization",basicAuth)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?