06
Апр
2017

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

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

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

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

Источник: https://ru.stackoverflow.com/questions/649385/%D0%9F%D1%80%D0%B8-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B5-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-%D0%BA-%D0%B0%D0%BF%D0%B8-sockettimeoutexception-read-timed-out

Share

Тебе может это понравится...