首頁  >  文章  >  後端開發  >  ## 如何在具有自訂傳輸的 Go HTTP 用戶端中設定代理支援?

## 如何在具有自訂傳輸的 Go HTTP 用戶端中設定代理支援?

Susan Sarandon
Susan Sarandon原創
2024-10-26 05:22:30229瀏覽

##  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn