22

我很难理解我们RoundTripper在 Go 中需要什么。

https://golang.org/pkg/net/http/#RoundTripper

Transport解释Go中的默认值:

var DefaultTransport RoundTripper = &Transport{
       Proxy: ProxyFromEnvironment,
       Dial: (&net.Dialer{
               Timeout:   30 * time.Second,
               KeepAlive: 30 * time.Second,
       }).Dial,
       TLSHandshakeTimeout: 10 * time.Second,
}

但是这和这有什么区别RoundTripper

transport := &http.Transport{
    Proxy:                 http.ProxyFromEnvironment,
    TLSHandshakeTimeout:   timeout,
    Dial:              dialfunc,
    DisableKeepAlives: true,
}

我的问题:RoundTripper与常规不同Transport吗?

4

1 回答 1

17

我认为沃尔克对您的问题的评论是正确的。从我的角度来看,提供http.Transport了.http.RoundTripperRoundTrip()

许多人使用这种方式来增加速率限制(即他们提供了一个可以http.Transport在幕后使用的实现,但他们增加了限制程序发送或接收字节的速率的能力)。

于 2014-11-03T13:08:42.080 回答