С помощью okhttp я определяю значение времени ожидания соединения okhttp на 3 секунды, чтобы получить ошибку времени ожидания.
OkHttpClient.Builder httpClient = new OkHttpClient().newBuilder()
.connectTimeout(3, TimeUnit.SECONDS)
.readTimeout(3, TimeUnit.SECONDS)
.writeTimeout(3, TimeUnit.SECONDS);
Я использовал retrofit и rxjava для выполнения сетевого вызова и обработки случая сетевой ошибки с потребителем onError () при методе подписки.
mTheApi.getMenuAPI(request)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
response -> {
Log.d(TAG, "getMenuAPI: " + response);
},
throwable -> {
// network error
Log.e(TAG, "getMenuAPI error: " + throwable.getMessage());
}
));
Но когда я вызываю API с этими настройками тайм-аута, соединение никогда не прекращается в течение длительного времени ответа API.
Обычно время ожидания истекает через 3 секунды, но продолжайте вызывать API более 3 секунд (более или менее 10 секунд).
Как мне обработать тайм-аут соединения для длительного времени ответа?
Заранее спасибо.