2009-01-07 96 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卡的照片上傳。 理論上,沒有任何東西可以阻止它在無盡的多部分請求上工作。 希望它會有所幫助。