2016-08-09 3 views
3

У меня есть несколько различных перехватчиков запросов для OkHttpClient. Каждый перехватчик требуется только для подмножества сетевых запросов, которые делает приложение. До сих пор я придумал два возможных варианта. Должен ли я:Один OkHttpClient со всеми перехватчиками и несколькими OkHttpClients с определенными перехватчиками

  • Прикрепите каждый перехватчик к одному клиенту OkHttpClient.

ИЛИ

  • Клон клиент для каждой группы перехватчиков таким образом, что каждая OkHttpClient имеет только перехватчик, которые требуются для этих запросов.

Спасибо!

ответ

2

я бы поспорил для первого случая, потому что это

  1. Simpler для клиента, только один клиент для управления.
  2. Упрощенный для очистки (закрывающий диспетчер, пул связи)
  3. работает с переадресацией через хост.

Просто сделайте каждый перехватчик условной проверкой.

Пулы соединений AFAIK могут совместно использоваться экземплярами OkHttpClient, которые вы клонируете, например. client.newBuilder(). x (...). build() при условии, что вы не делаете такие вещи, как изменение SSLContext.

+0

С уважением, Юрий, моя главная забота об этом подходе заключается в том, что каждый запрос выполняется через всю цепочку перехватчиков. – davehenry

+0

Возможно ли, что несколько клиентов используют одни и те же ресурсы (закрывающий диспетчер и пул соединений)? – gaara87

+0

Если производительность критическая, то вы можете сравнить оба подхода. Тем не менее, я уверен, что операции ввода/вывода и другие действия в OkHttp будут затмевать даже 10-20 перехватчиков. –

 Смежные вопросы

  • Нет связанных вопросов^_^