Java:接收多部分HTTP响应
我正在编写一个Java客户端应用程序来接收来自IP摄像机的实时m-JPEG视频。摄像机将视频作为无休止的多部分HTTP消息发送,其中每个部分都是一个JPEG帧。我需要在这些帧到达时处理它们,所以我希望有一种方法可以发出HTTP请求,在接收到每个消息部分/视频帧时异步触发事件
有人知道有哪些库可以做到这一点吗?我能在Google上找到的所有例子都不起作用,因为它们使用阻塞调用,只解析响应,并在接收完整个响应后将其分解为多个部分(这显然不适用于无休止的响应)
我意识到,当数据到达时,我可以通过搜索消息边界手动将其分解为多个部分,但感觉就像是在重新发明轮子
# 1 楼答案
从Apache Commons尝试HttpClient。源代码有两个类,它们展示了如何以流的方式在多部分中进行读取
# 2 楼答案
我已经为我的项目Sceye-Fi编写了处理多部分请求的类,这是一个HTTP服务器,它使用java 6附带的
com.sun.net.httpserver
类从Eye-Fi卡接收照片上传。 理论上,没有什么可以阻止它处理无休止的多部分请求。 希望这会有帮助# 3 楼答案
此项目:http://fmj-sf.net,确实有一个类来解析多部分/x-mixed-replace响应:http://fmj-sf.net/doc/fmj/net/sf/fmj/media/parser/MultipartMixedReplaceParser.html
使用:multipart/x-mixed-replace lang:java搜索google代码
我发现了一些其他的例子,比如:http://www.google.com/codesearch?as_q=multipart%2Fx-mixed-replace&btnG=Search+Code&hl=en&as_lang=java&as_license_restrict=i&as_license=&as_package=&as_filename=&as_case=
http://www.google.com/codesearch/p?hl=en#FCmBlvKk1MA/cambozola-0.50/src/com/charliemouse/cambozola/shared/CamStream.java&q=multipart/x-mixed-replace%20lang:java
http://www.google.com/codesearch/p?hl=en#Xnnd-VJLMBY/src/Grabber.java&q=multipart/x-mixed-replace%20lang:java