Go RoundTripper и транспорт
мне трудно понять, что нам нужно 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
?
1 ответов
Я думаю, Волкер понял это правильно в своем комментарии к вашему вопросу. С моей точки зрения, http.Transport
обеспечивает реализацию http.RoundTripper
, но вы можете предоставить свой собственный, который полностью отличается, если он реализует RoundTrip()
.
ряд людей использовали это как способ добавить ограничение скорости (т. е. они предоставляют реализацию, которая может использовать http.Transport
под обложками, но они добавляют возможность ограничить скорость, с которой ваша программа отправляет или получает байты.)