2016-12-02 13 views
3

Я получаю псевдослучайно ECONNRESET от компании моего бэкэнда. Я говорю pseudo random, потому что, хотя это не происходит так же, как я могу провоцировать его почти каждый раз, запустив большой объем запроса.Android Retrofit Я иногда получаю ECONNRESET, и я не знаю, почему

Я типично загружаю загрузки из жизненных циклов активности, поэтому я использую RetrofitCall.enqueue() для подключения к сети. В той части кода, которая, кажется, вызывает проблемы, я запускаю серию загрузок (~ 15 маршрутов REST для jsons и 5-6 файлов) из фонового потока. В этом случае ECONNRESET получает 2 из 3 попыток на одном из маршрутов REST.

Объяснение стороне сервера больше не единственное, что мы зарегистрировали, было прочитано/записано ECONNRESET.

Вот что я пробовал:

  • Обновления okhttp 3.5.0 (от 3.2.0) и модифицированная 2.1.0 (от 2.0.2)
  • Я добавил «Connection: закрыть» ИНТ моих запросов заголовка, чтобы предотвратить пропитание в живых.
  • я уменьшил свой общий бассейн 1: .connectionPool(new ConnectionPool(0, 1, TimeUnit.SECONDS))

Это случилось на моем телефоне (Android 6), у меня нет другого телефона, чтобы проверить код. У меня есть некоторые несвязанные проблемы с моим AVD, которые мешают мне тестировать различные версии Android (скоро их исправят).

Знаете ли вы, что могло бы спровоцировать это?

Спасибо,

ответ

0

Для записи я использую HttpURLConnection в мой метод загрузки файла (whearas мой REST API была поставлена ​​под сомнение Повсеместно переоснащения и okhttp), я изменил его на okHttp и это все хорошо сейчас.