На сервере софт мониторит и время от времени шлёт запросы к апи. Около суток софт работает просто идеально, а затем выдаёт эксепшн:
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
Результаты всегда одни и те же: работа в течении суток, затем эксепшн. Около недели испытывал разные вариации, решения найдено не было.
выставите таймаут в 0 и посмотрите что будет. Варианта, на самом деле 2: либо всё будет ок, и запросы будут нормально проходить, либо повиснут намертво. Если второе - мне кажется стоит почитать про то, как в OkHttp работает пул коннекшенов. Возможно достаточно будет что-то с ним перенастроить.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть ViewPager, к нему привязано 3 фрагментаНужно в первом фрагменте обновлялись данные во втором фрагменте
Переехал на новую систему и столкнулся с проблемой развертывания артефактаIntellij IDEA 2017