首页 > 后端开发 > Golang > 正文

## 如何在具有自定义传输的 Go HTTP 客户端中设置代理支持?

Susan Sarandon
发布: 2024-10-26 05:22:30
原创
233 人浏览过

##  How to Set Up Proxy Support in Go HTTP Clients with Custom Transports?

在具有自定义传输的 Go 程序中使用代理

在 Go 中创建 HTTP 客户端时,通常需要指定一个自定义传输来处理具体的网络设置。但是,标准 HTTP 客户端不会自动尊重代理环境变量。

使用 http.ProxyFromEnvironment

要在 Go 程序中启用代理支持,您可以使用http.ProxyFromEnvironment 方法。此方法根据环境变量 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 返回代理 URL。

<code class="go">var PTransport = &http.Transport{
    Proxy: http.ProxyFromEnvironment,
}

client := http.Client{
    Transport: PTransport,
}</code>
登录后复制

示例用法

要测试此方法是否有效,您可以手动设置代理环境变量:

export http_proxy='http://user:password@proxy-server:3128'
export https_proxy='http://user:password@proxy-server:3128'
export HTTP_PROXY='http://user:password@proxy-server:3128'
export HTTPS_PROXY='http://user:password@proxy-server:3128'
登录后复制

现在,您可以创建 HTTP 客户端并发送请求:

<code class="go">req, _ := http.NewRequest("GET", "https://jsonplaceholder.typicode.com/todos/1", nil)
req.Header.Add("If-None-Match", `some value`)
resp, _ := client.Do(req)</code>
登录后复制

如果代理设置正确,则来自远程的响应应显示服务器。

以上是## 如何在具有自定义传输的 Go HTTP 客户端中设置代理支持?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!