Go net/http忽略系统代理设置
我正在使用调试HTTP请求,但Go的网络堆栈似乎忽略了系统代理设置(在OSX上),并且请求没有被记录Go net/http忽略系统代理设置,go,Go,我正在使用调试HTTP请求,但Go的网络堆栈似乎忽略了系统代理设置(在OSX上),并且请求没有被记录 如何告诉Go请求应使用代理?您可以使用函数获取代理信息。然后,使用传输(由RoundTripper接口表示)创建http客户端,该传输包含有关代理设置的信息: var PTransport http.RoundTripper = &http.Transport{Proxy: http.ProxyFromEnvironment} client := http.Client{Transpo
如何告诉Go请求应使用代理?您可以使用函数获取代理信息。然后,使用传输(由RoundTripper接口表示)创建http客户端,该传输包含有关代理设置的信息:
var PTransport http.RoundTripper = &http.Transport{Proxy: http.ProxyFromEnvironment}
client := http.Client{Transport: PTransport}
然后,您只需使用info transport gets from passed函数执行http请求,将其发送到
Proxy
struct字段。代理信息将取自$HTTP\u Proxy
环境变量。我刚刚遇到了这个问题,而接受的解决方案并没有为我解决这个问题。这是因为没有设置我的$HTTP\u PROXY
环境变量
我可以通过按照此处所示设置环境变量来解决这个问题:一旦变量设置正确,我甚至不需要向我的客户机应用自定义的传输。它与默认传输一起工作
可能是因为我使用的是自定义shell(zsh),所以这并不是自动发生的。然而有趣的是,python会正确地出现在同一个shell中的Charles代理中,而Go不会。更新my.zshrc(或您正在使用的任何shell或概要文件的配置)以导出适当的变量是有效的。我所要做的就是导出链接中列出的变量,它就起作用了