#retrofit #okhttp #moshi
#модернизация #okhttp #моши
Вопрос:
У меня есть сторонняя (своего рода) конечная точка, которая принимает изображения в виде строк base64 в формате json. Очевидно, это приведет к тайм-аутам и т. Д.
Есть ли какой-нибудь волшебный способ (некоторая конфигурация сервера и т. Д.) Превратить это в потоковую загрузку, как если бы это был файл? Или необходимо будет реализовать регулярную многостраничную загрузку
Комментарии:
1. Каков фактический формат? В конечном счете, вы всегда можете закодировать весь JSON как поток, включая значения в строке, заключенной в кавычки. Посмотрите на метод OutputStream docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html Так что да, но, скорее всего, это просто неуклюжий ручной метод. Зависит от библиотеки JSON или если вы просто записываете байты json напрямую.
2. @Yuri Schimke Я использую Moshi. Что касается формата, это обычный HTTP POST с телом json. Итак, вы говорите, что я должен иметь возможность просто добавить @ Multipart в retrofit, а затем передать пользовательское тело запроса, которое использует json в качестве источника и записывает в приемник?
3. Не уверен. Но если вы достаточно мотивированы для потоковой передачи загрузок, это может работать на уровне OkHttp, если не выше.
4. Да, я мотивирован, однако бэкэнд также нуждается в модификации? Я наивно ожидаю, что он создаст буфер потокового содержимого, а затем проанализирует json в целом и сделает все, что он делает дальше, верно?
5. Я бы предположил, что это так.