繁体   English   中英

在 GO 中使用带有 net/http 的代理

[英]Using proxies with net/http in GO

我正在尝试将代理与 net/http package 一起使用。 我的代理是具有用户名、密码、代理地址和端口的轮换代理。 我尝试使用os.setEnv()将其设置为环境变量,并将其添加到我的 windows 10 环境变量中,但结果可能 windows 不支持用户通过身份验证的代理。 我也尝试了 http 传输方法,但无法正常工作

func SetProxy() *http.Client {
    cfg := GetConfig()
    if cfg.UseProxy {
        proxyUrl, err := url.Parse("http://" + cfg.Proxy)
        if err != nil {
            panic(err)
        }
        myClient := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyUrl)}}
        return myClient
    }
    return &http.Client{}
}

请如果有人可以向我指出一个教程或一些文档来使用代理,特别是代理和用户传递身份验证!

注意:我到处都使用这种格式:用户名:密码@代理地址:端口

作为调试尝试,您可以打印client.Transport.Proxy function; 如果它不为零,则调用它并打印它返回的内容。 如果Proxy不是nil并且返回 not nil *URL ,则使用代理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM