2017-05-31 17 views
1

我为http_proxy设置了env变量,但在另一个调用中,我喜欢绕​​过代理并改用直接连接到目标服务器。在Golang中绕过http_proxy

有没有什么办法可以在Go lang中做到这一点?

谢谢。

+0

只要不使用http.DefaultTransport:见https://golang.org/pkg/net/http/#RoundTripper – Volker

+0

真棒感谢沃尔克。 – artofabhishek

回答

1

正如@Volker提到的,您可以:如果呼叫要忽略

  • 使用的DefaultTransport
  • 修改DefaultTransport.Proxy自己RoundTripper而不是在问题
  • 请求返回零代理与特定的主机,并且您总是希望忽略代理对该主机的调用,将主机添加到NO_PROXY环境变量
+0

谢谢,spot-on。 – artofabhishek

1

这是我做过什么:

var defaultTransport http.RoundTripper = &http.Transport{ 
    Proxy: nil, 
    DialContext: (&net.Dialer{ 
     Timeout: 10 * time.Second, 
     KeepAlive: 30 * time.Second, 
     DualStack: true, 
    }).DialContext, 
    MaxIdleConns:   30, 
    IdleConnTimeout:  90 * time.Second, 
    TLSHandshakeTimeout: 15 * time.Second, 
    ExpectContinueTimeout: 1 * time.Second, 
} 

client := &http.Client{Transport: defaultTransport}