登录
首页 >  Golang >  Go问答

在 Golang 中使用 net/http 进行代理

来源:stackoverflow

时间:2024-02-21 09:03:21 295浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《在 Golang 中使用 net/http 进行代理》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我正在尝试将代理与 net/http 包一起使用。我的代理是一个旋转代理,具有用户名、密码、代理地址和端口。 我尝试使用 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 函数;如果它不为零,则调用它并打印它返回的内容。如果 Proxy 不是 nil 并且返回 not nil *URL,则使用代理。

终于介绍完啦!小伙伴们,这篇关于《在 Golang 中使用 net/http 进行代理》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>