2009-01-07 82 views
10

我正在编写Java客户端应用程序以从IP摄像机接收实时M-JPEG视频。相机将视频作为无尽的多段HTTP消息发送,其中每个部分都是单个JPEG帧。我需要在它们到达时处理这些帧中的每一帧,所以我希望有一种方法可以使HTTP请求在收到每个消息部分/视频帧时异步触发事件。Java:接收多部分HTTP响应

有人知道任何可以做到这一点的图书馆吗?我可以在Google上找到的所有示例都不起作用,因为它们使用的阻止调用只会解析响应,并在整个响应完成接收后将其分解为多个部分(这显然不适用于无尽的响应)。

我意识到我可以通过搜索消息边界来手动将数据分解为多个部分,但它只是觉得我会重新发明轮子。

回答

1

尝试Apache Commons的HttpClient。源代码有几个类,显示如何以流方式读取多部分内容。

+0

我查看了这个库的文档,它看起来像只用于解析多部分HTTP请求,而不是响应。根据此线程,它不能用于解析多部分响应:http://markmail.org/message/l6t46xzmikkbxo2e。我正在研究他们在链接中提到的Mime4j。 – user52386 2009-01-09 09:33:25

4
+0

感谢Cambozola看起来正是我想要做的,我会再看看他们的代码。我希望能够使用一个合适的HTTP库而不是自定义代码,因为它都是标准的HTTP,但看起来没有太多可用于我想要做的事情。 – user52386 2009-01-09 09:39:15

0

我已经编写了一些类来处理我的项目的多部分请求Sceye-Fi,这是一个HTTP服务器,它使用java 6附带的com.sun.net.httpserver类来接收来自Eye-Fi卡的照片上传。 理论上,没有任何东西可以阻止它在无尽的多部分请求上工作。 希望它会有所帮助。