Можно ли добавить/удалить аутентификаторов и/или перехватчики в существующий экземпляр Okhttp
? Если да, то как?Okhttp 3.x динамически добавлять/удалять аутентификатор/перехватчик
ответ
Нет, это невозможно.
Однако вы можете создать строитель от существующего клиента и внести изменения в это. Это разделит диспетчеру, 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
Вещь Я обычно создаю okhttp как один экземпляр объекта через инъекцию зависимостей, поэтому невозможно «обменивать» один экземпляр с другим при каждом добавлении/удалении перехватчика. –
Я предполагаю, что OP ссылается на «существующий экземпляр Okhttp» – Onheiron
Это может не сработать для вас, но это ответ. Извините, это не подходит –
Ну, API довольно пояснительная: https://github.com/square/okhttp/wiki/Перехватчики # application-interceptors Он показывает, как добавить перехватчик во время создания экземпляра okhttp. Но я не могу найти способ добавить его впоследствии, не создавая новый экземпляр. –