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 под прикрытиями, но они добавляют возможность ограничивать скорость, с которой ваша программа отправляет или получает байты).

Другие вопросы по тегам