Периодическая проблема с тайм-аутом от Android до веб-сервера

Я вызываю API из приложения для Android. Время от времени возникает проблема с тайм-аутом. Немногочисленные начальные вызовы набора всегда успешны, а затем успех бывает прерывистым. Это исключение ниже.

Caused by: java.net.ConnectException: Failed to connect to /:8080 at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:242) at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:160) at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)...

Я использую эту сетевую библиотеку https://github.com/amitshekhariitbhu/Fast-Android-Networking

Даже залпом пробовал, но результат тот же.


Также увеличен таймаут.

 OkHttpClient okHttpClient = new OkHttpClient()
    .newBuilder()
    .connectTimeout(300, TimeUnit.SECONDS)
    .readTimeout(300, TimeUnit.SECONDS)
    .writeTimeout(300, TimeUnit.SECONDS)
    .build();

Это тоже не помогло решить проблему.

URL правильный? URL работает в браузере? Порт 8080 правильный?

Philipp 19.07.2018 16:04

Да. URL правильный. Он работает для нескольких начальных звонков

Onkar Kore 19.07.2018 16:11

Работает ли с другими urls? Кроме того, опубликуйте код своего вызова API в своем вопросе. Вы можете изменить личные части, которые не хотите быть общедоступными

Philipp 19.07.2018 16:42

@Philipp Вы можете проверить пример кода здесь github.com/amitshekhariitbhu/Fast-Android-Networking/issues/‌ 324

Onkar Kore 19.07.2018 17:15

Не понимаю, почему вы думаете, что это проблема timeout. Вы нашли порог, при котором запросы все еще обрабатываются. Вам нужно немного сузить его, чтобы решить проблему. Возможно, попробуйте square.github.io/retrofit, чтобы определить, проблема ли это в библиотеке

Philipp 19.07.2018 17:31

@Philipp Я попробовал тот же запрос с developer.android.com/training/volley и получил такую ​​же проблему после нескольких обращений

Onkar Kore 19.07.2018 17:39

@Philipp Также пробовал вызывать один и тот же API 1000 раз из простого кода JAVA, и он отлично работает со средним временем отклика 1 с

Onkar Kore 19.07.2018 17:40

Итак, если вы исключите проблему из библиотеки и своей конечной точки, единственное, что останется, - это ваш цикл (?), На котором вы делаете запросы, или устройство, с которого вы их делаете, правильно?

Philipp 19.07.2018 17:49

@Philipp Спасибо. Это проблема с Android. Я вызываю API в фоновой службе.

Onkar Kore 19.07.2018 18:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
9
128
0

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