Написание приложения для Android, которое отслеживает и контролирует периферийное устройство WiFi с HTTP-запросами.Например, запрос к http://theDevice.lan/temperature/F
вызывает возврат объекта JSON, содержащего температуру в ° F.
Я создал RxJava2 Single
s для постановки в очередь асинхронных запросов и выдачи результата при получении обратного вызова.Для облегчения отладки я помечаю каждый запрос OkHttp3 пользовательским UUID, содержащим серийный номер и код, который идентифицирует запрашивающую сторону.
Все это работает хорошо, но иногда я вижу журналы запросов, которые имеют на вид случайные UUID, и я не могу понять, откуда они приходят.Мой текущий подозреваемый - оператор RxJava .retry()
, который я использую для некоторых моих HTTP-запросов.Я ничего не могу найти в документации, но может ли .retry( n )
использовать другого внутренне созданного подписчика, когда он делает повторные попытки?
Документация метода .request()
OkHttp3 может дать подсказку, сказав, что он возвращает:
Запрос на уровне канала, который инициировал этот HTTP-ответ.Это не обязательно тот же запрос, выданный приложением: он может быть преобразован HTTP-клиентом.Например, клиент может скопировать заголовки, такие как Content-Length, из тела запроса.Это может быть запрос, сгенерированный в ответ на перенаправление HTTP или запрос аутентификации.В этом случае URL-адрес запроса может отличаться от исходного URL-адреса запроса.
Я не до конца понимаю это или не знаю, относится ли это к моей ситуации (и что такое запрос «на уровне провода»?)