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

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

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

正文

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

http.Transport 類型說明

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

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

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

http.Transport 主要參數(shù)

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

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

DefaultTransport 配置

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

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

DialContext 簡(jiǎn)單示例

func dialContext(ctx context.Context, network, addr string) (net.Conn, error) {
    // 注: 這里無視了 ctx 的超時(shí), 實(shí)際上應(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ù)說明的詳細(xì)內(nèi)容,更多關(guān)于Go http.Transport參數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

    golang針對(duì)map的判斷,刪除操作示例

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

    Golang中深拷貝與淺拷貝詳解

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

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

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

    golang的空標(biāo)識(shí)符理解

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

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

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

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

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

    go mod tidy加載模塊超時(shí)的問題及解決

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

最新評(píng)論

宁武县| 达州市| 顺昌县| 会宁县| 清丰县| 新建县| 灵山县| 项城市| 肥城市| 东至县| 滦平县| 乡城县| 吉林市| 新昌县| 新昌县| 长武县| 衡山县| 克拉玛依市| 衡水市| 西乡县| 海伦市| 江西省| 辽阳市| 潜山县| 龙陵县| 和田县| 岱山县| 西平县| 当阳市| 金门县| 通州市| 隆子县| 巩留县| 旬邑县| 普宁市| 洪湖市| 宁阳县| 穆棱市| 尉氏县| 沽源县| 抚宁县|