tags:

views:

39

answers:

2

I think I'm experiencing the same as http://groups.google.com/group/android-developers/msg/9d37d64aad0ee357
This is Android 1.5 SDK. I happen to call several times below code(which is in a method) with the same url and it fails intermittently.
When it fails, there is no exception, the stream is empty so the readConnection fails, and getResponseCode returns -1.
Global caching is disabled, setDefaultUseCaches(false);

I suppose there must be some kind of url connection object pool somewhere.

Any idea on how can I workaround this?

HttpURLConnection connection = null;
    try {
        URL url = new URL(this.url);
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestProperty("Authorization", "basic " +
        Base64Coder.encodeString(user + ":" + password));
        connection.setRequestProperty("User-Agent", userAgent);
        connection.connect();

        readConnection(connection.getInputStream());

        connection.disconnect();
    } catch (IOException ex) {
               reportException(ex, connection.getResponseCode())
    } catch (ParserException ex) {
               reportException(ex, connection.getResponseCode())
    } 
+1  A: 

The way I fixed this issue was to add the below line...

System.setProperty("http.keepAlive", "false");

...before my connection line...

connection = (HttpURLConnection) url.openConnection();

Good luck!

duskstriker
A: 

if getResponseCode returns -1 it means that there was a connection error of some sort.

Yuliy