Go RoundTripper и Транспорт
Мне трудно понять, что нам нужно RoundTripper
для в го.
https://golang.org/pkg/net/http/
Объясняет по умолчанию Transport
на ходу:
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
?
1 ответ
Я думаю, что Фолькер понял это правильно в своем комментарии к вашему вопросу. С моей точки зрения, http.Transport
обеспечивает реализацию http.RoundTripper
, но вы можете предоставить свой собственный, который полностью отличается, если он реализует RoundTrip()
,
Ряд людей использовали это как способ добавления ограничения скорости (т.е. они предоставляют реализацию, которая может использовать http.Transport
под прикрытиями, но они добавляют возможность ограничивать скорость, с которой ваша программа отправляет или получает байты).