2016-07-06 3 views
1

Можно ли добавить/удалить аутентификаторов и/или перехватчики в существующий экземпляр Okhttp? Если да, то как?Okhttp 3.x динамически добавлять/удалять аутентификатор/перехватчик

+1

Ну, API довольно пояснительная: https://github.com/square/okhttp/wiki/Перехватчики # application-interceptors Он показывает, как добавить перехватчик во время создания экземпляра okhttp. Но я не могу найти способ добавить его впоследствии, не создавая новый экземпляр. –

ответ

2

Нет, это невозможно.

Однако вы можете создать строитель от существующего клиента и внести изменения в это. Это разделит диспетчеру, connectionPool и т.д.

OkHttpClient.Builder clientBuilder = client1.newBuilder(); 
clientBuilder.networkInterceptors().add(0, serviceInterceptor); 
OkHttpClient client2 = clientBuilder.build(); 

Существует пример для настройки тайм-аута клиента в Javadoc https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html

+0

Вещь Я обычно создаю okhttp как один экземпляр объекта через инъекцию зависимостей, поэтому невозможно «обменивать» один экземпляр с другим при каждом добавлении/удалении перехватчика. –

+0

Я предполагаю, что OP ссылается на «существующий экземпляр Okhttp» – Onheiron

+0

Это может не сработать для вас, но это ответ. Извините, это не подходит –