FileNotFoundException for HttpURLConnection in Ice Cream Sandwich

Kristopher Johnson picture Kristopher Johnson · Feb 20, 2012 · Viewed 38k times · Source

I have an Android app that works fine with Android 2.x and 3.x, but it fails when run on Android 4.x.

The problem is in this section of code:

URL url = new URL("http://blahblah.blah/somedata.xml");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();

InputStream inputStream = urlConnection.getInputStream();

When the application is running on Android 4.x, the getInputStream() call results in a FileNotFoundException. When the same binary is running on earlier versions of Android, it succeeds. The URLs also work fine in web browsers and with curl.

Apparently something about HttpURLConnection has changed in ICS. Does anybody have any idea what has changed, and/or what the fix might be?

Answer

reuscam picture reuscam · Feb 20, 2012

Try removing the setDoOutput call. Taken from this blog: a blog

Edit: This is needed when using a POST call.