最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go?http.Transport?主要參數(shù)說明

 更新時間:2023年06月05日 08:58:08   作者:amc  
這篇文章主要為大家介紹了Go?http.Transport主要參數(shù)說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

在 Go 中創(chuàng)建一個 http client 時,一般會使用 Go http 包的 Transport 類型。本文主要說明 http.Transport 需要關(guān)注的主要參數(shù)。

http.Transport 類型說明

首先我們要明確的是,我們開發(fā) http client 的時候,經(jīng)常會這么寫:

client := &http.Client{
    Transport: http.DefaultTransport,
}

但細看可以發(fā)現(xiàn),http.Client 的 Transport 成員類型是 http.RoundTripper,而不是 http.Transport 類型。換句話說,開發(fā)者完全可以拋棄原生的實現(xiàn),自己定制一份 http.RoundTripper 接口來實現(xiàn)一個完整的 http 調(diào)用。不過這不在本文說明范圍內(nèi)。

http.Transport 主要參數(shù)

該類型通過一系列的參數(shù)來決定其行為。請注意的是,同樣數(shù)據(jù)類型的不同參數(shù),其表達的默認值是不同的。

參數(shù)作用默認值
連接控制類
Proxy指定使用 http 代理。這里推薦傳入 http.ProxyFromEnvironment, 以支持系統(tǒng)配置的 http 代理nil,表示 不使用 任何代理,請注意
DialContextTCP 連接函數(shù)。開發(fā)者可以簡單封裝一下,一般可以用來做一些監(jiān)控或者特殊的地址解析邏輯nil, 使用默認的 http 連接
超時控制類
TLSHandShakeTimeouttime.Duration 類型,表示TLS 握手超時時間。這里推薦傳入一個非零值0, 表示無限制
IdleConnTimeouttime.Duration 類型,表示一個連接在空閑多久之后關(guān)閉。0, 表示不關(guān)閉
連接數(shù)控制類
MaxIdleConns最大空閑連接數(shù)0, 表示無限制
MaxIdleConnsPerHost每一個 host 的最大連接數(shù)http.DefaultMaxIdleConnsPerHost,即 2
緩沖區(qū)類
WriteBufferSize寫緩沖區(qū)的大小4kB
ReadBufferSize讀緩沖區(qū)的大小4kB
其他
ForceAttemptHTTP2字面意思,是否強制嘗試 HTTP2。建議設(shè)置為 truefalse, 不嘗試

DefaultTransport 配置

http.DefaultTransport 是基于 http.Transport 實現(xiàn)的,其配置說明如下:

參數(shù)
Proxyhttp.ProxyFromEnvironment 即 follow 系統(tǒng)配置
DialContextnet.Dialer 類型的 DialContext 方法
TLSHandShakeTimeout10 秒
IdleConnTimeout90 秒
MaxIdleConns100
MaxIdleConnsPerHosthttp.DefaultMaxIdleConnsPerHost,即 2
WriteBufferSize4kB
ReadBufferSize4kB
ForceAttemptHTTP2true

DialContext 簡單示例

func dialContext(ctx context.Context, network, addr string) (net.Conn, error) {
    // 注: 這里無視了 ctx 的超時, 實際上應(yīng)該加上
    log.Debugf("request connecting %v, %v", network, addr)
    tcpAddr, err := net.ResolveTCPAddr(network, addr)
    if err != nil {
        return nil, fmt.Errorf("resolve %s failed: %w", addr, err)
    }
    conn, err := net.DialTCP(network, nil, tcpAddr)
    if err != nil {
        return nil, fmt.Errorf("connect to %v failed: %w", tcpAddr, err)
    }
    return conn, nil
}

Reference

以上就是Go http.Transport 主要參數(shù)說明的詳細內(nèi)容,更多關(guān)于Go http.Transport參數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Golang標準庫syscall詳解(什么是系統(tǒng)調(diào)用)

    Golang標準庫syscall詳解(什么是系統(tǒng)調(diào)用)

    最近在研究go語言,發(fā)現(xiàn)go語言系統(tǒng)調(diào)用源碼只有調(diào)用函數(shù)的定義,今天通過本文給大家分享Golang標準庫syscall詳解及什么是系統(tǒng)調(diào)用,感興趣的朋友一起看看吧
    2021-05-05
  • GO語言支付寶沙箱對接的實現(xiàn)

    GO語言支付寶沙箱對接的實現(xiàn)

    本文介紹了如何使用GO語言對接支付寶沙箱環(huán)境,包括秘鑰生成、SDK安裝和代碼實現(xiàn)等步驟,詳細內(nèi)容涵蓋了從秘鑰生成到前端代碼的每個階段,為開發(fā)者提供了一條清晰的指引
    2024-09-09
  • go語言windows下進程信息獲取實現(xiàn)方式

    go語言windows下進程信息獲取實現(xiàn)方式

    文章主要介紹了如何獲取當前進程的時間信息以及進程ID的方法,通過使用相關(guān)系統(tǒng)命令或編程語言中的庫函數(shù),可以輕松獲取這些信息,對于進程管理、性能監(jiān)控等場景具有重要價值
    2026-04-04
  • golang針對map的判斷,刪除操作示例

    golang針對map的判斷,刪除操作示例

    這篇文章主要介紹了golang針對map的判斷,刪除操作,結(jié)合具體實例形式分析了Go語言map判斷與刪除相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • Golang中深拷貝與淺拷貝詳解

    Golang中深拷貝與淺拷貝詳解

    這篇文章主要為大家詳細介紹一下Golang深拷貝和淺拷貝,文中有詳細的代碼示例供大家參考,需要的可以參考一下
    2023-05-05
  • Go語言基礎(chǔ)閉包的原理分析示例詳解

    Go語言基礎(chǔ)閉包的原理分析示例詳解

    這篇文章主要為大家介紹了Go語言基礎(chǔ)閉包的底層原理及實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2021-11-11
  • golang的空標識符理解

    golang的空標識符理解

    今天小編就為大家分享一篇關(guān)于golang的空標識符理解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • GORM不定參數(shù)的用法最佳實踐

    GORM不定參數(shù)的用法最佳實踐

    這篇文章主要為大家介紹了GORM不定參數(shù)的用法最佳實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Golang Defer關(guān)鍵字特定操作詳解

    Golang Defer關(guān)鍵字特定操作詳解

    defer是Go語言中的延遲執(zhí)行語句,用來添加函數(shù)結(jié)束時執(zhí)行的代碼,常用于釋放某些已分配的資源、關(guān)閉數(shù)據(jù)庫連接、斷開socket連接、解鎖一個加鎖的資源,這篇文章主要介紹了golang中的defer函數(shù)理解,需要的朋友可以參考下
    2023-03-03
  • go mod tidy加載模塊超時的問題及解決

    go mod tidy加載模塊超時的問題及解決

    go mod tidy加載模塊超時的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

岳普湖县| 彰武县| 鹤庆县| 银川市| 麦盖提县| 稻城县| 晴隆县| 张家口市| 商城县| 富平县| 托克逊县| 大丰市| 清徐县| 广宁县| 读书| 乐至县| 务川| 云和县| 历史| 栾川县| 东乌| 静宁县| 舒兰市| 林甸县| 彝良县| 栾城县| 尉氏县| 宝兴县| 长子县| 彝良县| 日喀则市| 镇平县| 邮箱| 夏河县| 富锦市| 阜阳市| 辛集市| 会同县| 稻城县| 托克逊县| 宿州市|