Параметры реактора ввода / вывода применяются к каналам подключения, управляемым реактором ввода / вывода. Каналы подключения представляют собой двунаправленные потоки данных и не зависят от протокола приложения.
Параметры HTTP-запроса применяются к отдельным HTTP-запросам и контролируют выполнение этих запросов.
Некоторое время назад пользователи просили о простом способе переопределения времени ожидания сокета для каждого запроса. В ретроспективе решение о введении такого параметра, скорее всего, было ошибкой.
Важное различие между тайм-аутом сокета на уровне канала соединения и тем, что на уровне HTTP является последним, применяется только после того, как полностью установлен маршрут HTTP, процесс, который может включать обновление TLS и промежуточные прыжки через туннель прокси, тогда как соединение Тайм-аут уровня канала применяется ко всем входам / выходам на этом канале немедленно.
Думайте о IOReactorConfig
как о значении по умолчанию и RequestConfig
как о переопределении в каждом конкретном случае.
RequestConfig#socketTimeout
был удален в HttpClient 5.0