I'm using HttpURLConnection
on Android KitKat to POST some data to a server. The server takes a long time to respond, and the connection is silently retrying 1 to 3 times before timing out. I don't want it to retry, since the server acts on all of the requests, resulting in Bad Things(TM).
I've tried System.setProperty("http.keepAlive", "false")
before opening the connection, but that doesn't help.
For POST calls set
httpURLConnection.setChunkedStreamingMode(0);
and this should fix the silent retries.
The bug report and workaround can be found here.
You need to set System.setProperty("sun.net.http.retryPost", "false")
Android’s HTTP Clients
Prior to Froyo, HttpURLConnection
had some frustrating bugs. In particular, calling close() on a readable InputStream could poison the connection pool. Work around this by disabling connection pooling:
private void disableConnectionReuseIfNecessary() {
// HTTP connection reuse which was buggy pre-froyo
if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {
System.setProperty("http.keepAlive", "false");
}
}