Streaming data from client with HTTP Post

2019-02-21 19:37发布

问题:

I would like to stream data from the client to the server.

My application streams audio data to the server. I do not know how long the audio will be when I begin streaming it. I want to reduce latency by transmitting the data as it is being recorded. Once all the data has been uploaded, then I will process it.

So, what I would like is a HTTP POST where the body is streamed. At the client, the POST would be sent as the data is available. At the server end, I would like it to arrive like a normal POST with a complete body of collected data.

I am currently using Restlet, and implementing my stream as a Chunked POST to the Restlet framework.

However, I can not find a client API that allows me to begin the POST, then start streaming the data.

I haven't found anything useful searching the archive. Can anyone give me a pointer here. Can HTTP POST be used this way? Can I use Restlet for this? Is there another standard pattern/API for streaming from the client to the server?

Many thanks in advance Peter

回答1:

Going to answer my own question for those that come after.

Here is a nice tutorial on streaming requests with Apache HttpClient

Search for "Request Streaming:"

http://hc.apache.org/httpclient-3.x/performance.html#Request_Response_entity_streaming



回答2:

I can not find a client API that allows me to begin the POST

You could always use a browser. Serverside it's just the same a a file upload.