2017-05-31 121 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}