Retrofit2 / OKHttp3: программная установка пользовательских заголовков для каждого запроса - PullRequest
0 голосов
/ 18 сентября 2018

Как указать пользовательские тайм-ауты для чтения / записи / подключения для каждого запроса с помощью Retrofit2 / OKHttp3?Что-то вроде

Response<Listings> response = 
    ApiProvider.getServer1().getListings().setTimeouts(10000).execute();

В настоящее время тайм-ауты установлены на 30 с, что вполне нормально, но в одном конкретном случае я ограничен пределом выполнения 10 с, и мне нужно убедиться, что я получаю веб-ответ до этого.

На основе этого приятного комментария GitHub Я знаю, что мог бы устанавливать настраиваемые таймауты с помощью @Header и анализировать их в перехватчике OKHttp, но, как уже было сказано, мне нужны настраиваемые тайм-ауты только для одного конкретного вызова API в определенном контексте..

Я также нашел этот ответ (опция 1) При использовании OkHttp 2.2+ используйте Interceptor ), но я не вижу, как я могу сказать перехватчику, что янужны нестандартные таймауты.

1 Ответ

0 голосов
/ 18 сентября 2018

Чтобы установить заголовок динамически, вы можете передать значение заголовка в качестве параметра в вашем методе, используя аннотацию @Header.

Пример:

@GET("some/url")
Call<SomeClass> doSomething(@Header("CONNECT_TIMEOUT") String timeOut);
...