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
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
You could always use a browser. Serverside it's just the same a a file upload.