Golang设置网络请求代理:配置HTTP_PROXY和HTTPS_PROXY、处理不需要代理的情况

3,725次阅读
没有评论

共计 1196 个字符,预计需要花费 3 分钟才能阅读完成。

 Golang 网络请求代理配置, HTTP_PROXY, HTTPS_PROXY, Golang http.Client 设置代理, 不需要代理的处理

Golang 网络请求示意图

对于许多情况下需要请求海外接口并进行数据请求处理的问题,我们通常需要配置代理。本文主要讨论正常的 HTTP_PROXY 和 HTTPS_PROXY 这种代理形式,暂不涉及需要配置账号密码的代理。

Golang 的底层 http 请求库会根据环境变量 HTTP_PROXY 和 HTTPS_PROXY 自动设置代理。因此,我们可以手动在环境变量中配置这两个变量,或者在程序中手动配置它们。

在程序中配置代理

我们可以使用以下代码在程序中配置代理:

_= os.Setenv("HTTP_PROXY", "代理地址")
_= os.Setenv("HTTPS_PROXY", "代理地址")

然而,在全局配置代理之后,肯定会影响到正常的请求。在很多情况下,并不需要在所有地方都使用代理,只有部分请求需要。那么我们该如何处理呢?

处理不需要代理的情况

只需要在发起 http 请求时手动设置不依赖于代理即可。以下代码展示了如何在 Golang 中处理这种情况:

client = &http.Client{
    Transport: &http.Transport{
        // 不设置代理
        Proxy: nil,
    },
}

在上述代码中,我们通过对 http.Client 进行初始化,并设置 Transport 参数,将 Transport 中的 Proxy 手动设置为 nil。

通过这样的方式,我们既解决了需要代理和不需要代理的情况。

然而,Golang 的 http 请求库的处理方式与我们正常的思维有一定差异,因为它的底层支持直接依赖环境变量。实际上,代理是少数情况,但多数场景下我们仍需要手动进行处理。

总结

通过本文,我们学习了如何在 Golang 中配置 HTTP_PROXY 和 HTTPS_PROXY 来设置网络请求代理。我们可以通过手动设置环境变量或在程序中配置这两个代理变量,同时使用 http.Client 的 Transport 参数来实现需要代理和不需要代理的情况处理。 文章来源地址 https://www.toymoban.com/diary/golang/611.html

到此这篇关于 Golang 设置网络请求代理:配置 HTTP_PROXY 和 HTTPS_PROXY、处理不需要代理的情况的文章就介绍到这了, 更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持 TOY 模板网!

原文地址:https://www.toymoban.com/diary/golang/611.html

如若转载,请注明出处:如若内容造成侵权 / 违法违规 / 事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计1196字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)