Как найти причину возникновения java.net.SocketTimeoutException так часто в моем приложении для Android?

У меня проблема, и я не знаю, как от нее избавиться. Иногда (это основная проблема, просто иногда) У меня такое исключение:

07-23 01:18:14.198: W/System.err(31750): java.net.SocketTimeoutException
07-23 01:18:14.198: W/System.err(31750):    at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)
07-23 01:18:14.198: W/System.err(31750):    at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37)
07-23 01:18:14.198: W/System.err(31750):    at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okio.Okio$2.read(Okio.java:116)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okio.RealBufferedSource.indexOf(RealBufferedSource.java:150)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:97)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:202)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:119)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:798)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:405)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:349)
07-23 01:18:14.198: W/System.err(31750):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.getHeaderFieldKey(HttpURLConnectionImpl.java:174)

Я знаю, что в основном является socketTimeoutException, но здесь проблема в том, что это не может случиться (или, по крайней мере, не так много), поскольку сервер является локальным и подключен к тому же маршрутизатору, к которому подключен телефон (я пробовал с другим маршрутизатором, та же проблема ). И, конечно, сервер работает отлично (когда у меня есть ошибка в приложении, журнал на сервере показывает, что сервер никогда не получает никаких запросов). Итак, что может сделать, что у меня иногда (2-10 раз в день) есть java.net.SocketTimeoutException, который я не могу воспроизвести (просто повторяя тот же самый запрос, и он работает нормально).

Я использую дельфи TNetHttpClient (не знаю, имеет ли это значение), который внутренне использует HttpURLConnection

Также что я могу сделать, чтобы отладить эту ошибку, чтобы выяснить, в чем истинная причина java.net.SocketTimeoutException?

airbrake.io/blog/java-exception-handling/sockettimeoutexcept‌ ion проверьте это, если это поможет
Anjani Mittal 23.07.2018 10:56

@AnjaniMittal спасибо, к сожалению, эта статья слишком универсальна для сокета, это не помогло :( Я не использую сокет напрямую, просто с помощью httpUrlConnection, моя проблема в том, чтобы понять, что вызывает тайм-аут сокета, потому что он наверняка находится в программном обеспечении, а не в оборудовании /сеть

zeus 23.07.2018 11:18

Это происходит на одном конкретном устройстве или на нескольких?

Dave Nottage 23.07.2018 12:14

Также вам может быть интересно посмотреть: stackoverflow.com/questions/9094227/…. Они говорят о «близком» методе, но я не могу найти его. Возможно, поможет изменение тайм-аута чтения?

Dave Nottage 23.07.2018 12:26

@DaveNottage: это происходит на нескольких устройствах, но только для моего приложения для Android delphi. у меня никогда не было такой ошибки ни в одном другом приложении, которое я использовал

zeus 23.07.2018 12:40

@DaveNottage: хммм, очень интересно, если это тот шов, который является ошибкой в ​​TnetHttpClient, но мне нужно разобраться. не уверен, что это нужно для расследования

zeus 23.07.2018 12:43

@DaveNottage: не уверен, что это близко, и даже не очень хорошо закрывать соединение, которое поддерживает работу. Я использую (и повторно использую) всегда один и тот же клиент nethttpclient

zeus 23.07.2018 12:46
0
7
726
0

Другие вопросы по теме