I’m working on some code which POSTs large packets often over HTTP to a REST server on IIS. I’m using the RIM/JavaME HTTPConnection class.
As far as I can tell HTTPConnection uses an internal buffer to “gather” up the output stream before sending the entire contents to the server. I’m not surprised, since this is how HttpURLConnect works by default as well. (I assume it does this so that the content-length is set correctly.) But in JavaSE I could override this behavior by using the method setFixedLengthStreamingMode so that when I call flush on the output stream it would send that “chunk” of the stream. On a phone this extra buffering is too expensive in terms of memory.
In Blackberry Java is there a way to do fixed-length streaming on a HTTP request, when you know the content-length in advance?
So, I never found a way to do this was the base API for HTTPConnection. So instead, I created a socket and wrapped it with my own simple HTTPClient, which did support chunking.
Below is the prototype I used and tested on BB7.0.
Here is example usage for it: