При отправке запроса к апи SocketTimeoutException: Read timed out

411
07 апреля 2017, 21:36

На сервере софт мониторит и время от времени шлёт запросы к апи. Около суток софт работает просто идеально, а затем выдаёт эксепшн:

java.net.SocketTimeoutException: Read timed out

Как я отправляю запрос:

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(String.valueOf(message)).build();
response.body().close();

Пытался выставлять разные таймауты: 5 сек, 120 сек, 12000 сек.

client.setConnectTimeout(120, TimeUnit.SECONDS); // connect timeout
client.setReadTimeout(120, TimeUnit.SECONDS);    // socket timeout

Кроме этого, делал обработку этого эксепшна и переотправлял запрос:

try {
//запрос (и со своими таймаутами, и без)
} catch (SocketTimeoutException e) {
sendRequest(parametres);
}

Также пробовал на всякий случай просто:

throws SocketTimeoutException

Результаты всегда одни и те же: работа в течении суток, затем эксепшн. Около недели испытывал разные вариации, решения найдено не было.

Answer 1

выставите таймаут в 0 и посмотрите что будет. Варианта, на самом деле 2: либо всё будет ок, и запросы будут нормально проходить, либо повиснут намертво. Если второе - мне кажется стоит почитать про то, как в OkHttp работает пул коннекшенов. Возможно достаточно будет что-то с ним перенастроить.

READ ALSO
ViewPager обновить один фрагмент

ViewPager обновить один фрагмент

Есть ViewPager, к нему привязано 3 фрагментаНужно в первом фрагменте обновлялись данные во втором фрагменте

215
В чем отличие Static и Activity?

В чем отличие Static и Activity?

В чем отличие статической переменной типо

249
Intellij IDEA ошибка во время развертывания артефакта на Tomcat

Intellij IDEA ошибка во время развертывания артефакта на Tomcat

Переехал на новую систему и столкнулся с проблемой развертывания артефактаIntellij IDEA 2017

404