Java: получить многокомпонентный HTTP-ответ - PullRequest
10 голосов
/ 07 января 2009

Я пишу клиентское приложение Java для получения живого видео M-JPEG с IP-камеры. Видео отправляется камерой в виде бесконечного многочастного HTTP-сообщения, где каждая часть представляет собой один кадр JPEG. Мне нужно обрабатывать каждый из этих кадров по мере их поступления, поэтому я надеюсь, что есть способ сделать HTTP-запрос, который асинхронно инициирует событие при получении каждой части сообщения / видеокадра.

Кто-нибудь знает какие-нибудь библиотеки, которые могут это сделать? Все примеры, которые я могу найти в Google, не будут работать, потому что они используют блокирующие вызовы, которые только анализируют ответ и разбивают его на части после того, как весь ответ получен (что, очевидно, не будет работать для бесконечного ответа).

Я понимаю, что мог бы вручную разбивать данные на части по мере их поступления путем поиска границы сообщения, но мне просто кажется, что я бы заново изобрел колесо.

Ответы [ 3 ]

1 голос
/ 08 января 2009

Попробуйте HttpClient от Apache Commons. В исходном коде есть пара классов, которые показывают, как читать в нескольких частях потоковым способом.

0 голосов
/ 05 мая 2011

Я написал классы, которые обрабатывают многокомпонентные запросы для моего проекта Sceye-Fi , HTTP-сервер, который использует com.sun.net.httpserver классы, поставляемые с Java 6, для получения загрузки фотографий с Eye -Fi карта. Теоретически, ничто не должно мешать работе бесконечного многочастного запроса. Надеюсь, это поможет.

...