Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting setChunkedStreamingMode in HttpURLConnection fails to deliver data to server

My server version is as follows on my dev machine:

Apache/2.2.21 (Win32) mod_fcgid/2.3.6

I have been testing HttpURLConnection as my project requires easy streaming capabilties. I have read a great synopsis from @BalusC on how to use the class.

Using java.net.URLConnection to fire and handle HTTP requests

The trouble I am currently having is when setting setChunkedStreamingMode. Regardless of what I set it to my stream doesn't seem to make it to the server the data stream is empty when my server api method/connection is called/made. However, if I remove it, it works fine.

I have seen another person with a similar issue:

Java/Android HttpURLConnection setChunkedStreamingMode not working with all PHP servers

But with no real resolution. I am unable to set it to setFixedLengthStreamingMode simply because the content (json) is variable in length.

This is NOT OK. I potentially will be transfering very large quantities of data and hence cannot have the data stored in memory.

My question is, how can I get setChunkedStreamingMode to play nice? Is it a server setup issue or can it be fixed in code?

EDIT I have now tested my code on my production server and it works no problem. I would however still like to know why my Apache server on my local machine fails. Any help is still much appreciated.

like image 905
HGPB Avatar asked Apr 09 '13 22:04

HGPB


1 Answers

Try adding this HTTP header:

urlConnection.setRequestHeader("Transfer-Encoding","chunked");

I haved a problem like this: although I haved set the chunked HTTP streaming mode (urlConnection.setChunkedStreamingMode(0) ), it not worked, but putting the HTTP header above it works fine.

like image 100
Santiago Avatar answered Sep 25 '22 17:09

Santiago