ZBLOG

golang &http.Client 自定义请求超时

你好,关于golang &http.Client自定义请求超时的问题,我可以给你提供以下建议:

在Go中,我们可以使用http.Client来发出HTTP请求。它包含了一些默认的超时时间。如果我们需要自定义这个超时时间,可以通过创建一个自定义的http.Transport并将其传递给http.Client来实现。

下面是一个示例代码:

import (
    "net/http"
    "time"
)

func main() {
    // 创建一个自定义的Transport
    transport := &http.Transport{
        DialContext: (&net.Dialer{
            Timeout:   30 * time.Second, // 设置连接超时时间
            KeepAlive: 30 * time.Second, // 设置保持连接时间
        }).DialContext,
        MaxIdleConns:          100,              // 最大空闲连接数
        IdleConnTimeout:       90 * time.Second, // 空闲连接等待时间
        TLSHandshakeTimeout:   10 * time.Second, // TLS握手超时时间
        ExpectContinueTimeout: 1 * time.Second,  // 请求头Expect继续等待时间
    }

    client := &http.Client{
        Timeout:   time.Second * 10, // 设置请求超时时间为10秒钟
        Transport: transport,
    }

    resp, err := client.Get("https://www.example.com")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
}

在上面的代码中,我们创建了一个自定义的Transport,并将其传递给了http.Client。此外,我们还设置了一个全局的请求超时时间为10秒钟。

希望这个回答可以对你有所帮助。如果还有任何问题,请随时提出,我会尽力帮助你。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=2586

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?