去RoundTripper和运输

13 http go roundtrip itmstransporter

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

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

解释TransportGo中的默认值:

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

但是RoundTripper和之间的区别是什么:

transport := &http.Transport{
    Proxy:                 http.ProxyFromEnvironment,
    TLSHandshakeTimeout:   timeout,
    Dial:              dialfunc,
    DisableKeepAlives: true,
}
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*nge 11

我认为沃尔克在他对你的问题的评论中做得对.从我的角度来看,http.Transport提供了一个实现http.RoundTripper,但是你可以提供自己完全不同的实现,只要它实现RoundTrip().

许多人已经使用它作为添加速率限制的方法(即它们提供了可以http.Transport在封面下使用的实现,但是它们增加了限制程序发送或接收字节的速率的能力).