Возвращает ли HTTP-ответ поток или фактический ответ для больших ответов?

Возвращает ли http-клиент поток в качестве ответа или читает байты из потока и возвращает нам ответ?

Если он возвращает поток, пользователю нужно будет читать из этого потока, чтобы получить ответ?

Например. Мы используем ApacheAsyncHttpClient для получения больших двоичных объектов из службы хранилища Azure. Ответ REST должен содержать только поток, откуда следует читать большой двоичный объект, верно? Но я заметил, что клиент сам читает все байты из потока перед тем, как вызвать наш завершенный обратный вызов.

И если данные из потока не читаются, HTTP-соединение остается открытым?

Изменить - мы не можем использовать SDK по причинам, выходящим за рамки этого вопроса. Мой вопрос специально для ApacheAsyncHttpClient.

Он читает весь поток перед вызовом завершенного обратного вызова. В идеале я бы хотел, чтобы он возвращал мне поток, и мое приложение читало из этого потока. Есть способ сделать это ? И все ли http-клиенты ведут себя одинаково?

Это полностью зависит от клиента. Сервер вернет поток байтов по TCP / IP. Тот, кто обрабатывает возвращенный поток, может решить, что с ним делать. Так что, наверное, вам нужно читать по-другому. Я уверен, что в документации есть ответы на все вопросы.

Kayaman 05.04.2018 09:49

Как сказал @Kayaman, вы пробовали использовать SDK по умолчанию ?? github.com/Azure/azure-storage-java

Thomas 05.04.2018 09:57

@kayaman - Отредактировал вопрос

lostintranslation 05.04.2018 14:04

Вы читали документацию и говорилось ли что-нибудь о получении результата потока? Не все HTTP-клиенты ведут себя одинаково. Вы можете написать свой собственный и заставить его делать разные безумные вещи. Но в целом они работают примерно одинаково. В конце концов, все они выполняют HTTP-запросы, и это устанавливает некоторые границы.

Kayaman 05.04.2018 14:09

Я попытался реализовать собственный Consumer для потоковой передачи тела ответа, но не смог. Я хочу вернуть своему клиенту CompletetableFuture объекта ответа. Затем он начнет читать из потока в объекте ответа. Для справки -> stackoverflow.com/questions/50294297/…

lostintranslation 15.05.2018 16:04
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
210
0

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