Tengo una aplicación de Android que funciona bien con Android 2.xy 3.x, pero falla cuando se ejecuta en Android 4.x.FileNotFoundException para HttpURLConnection en Ice Cream Sandwich
El problema es en esta sección del código:
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();
Cuando la aplicación se ejecuta en Android 4.x, los resultados getInputStream()
de llamadas en una FileNotFoundException
. Cuando el mismo binario se ejecuta en versiones anteriores de Android, tiene éxito. Las URL también funcionan bien en los navegadores web y con curl
.
Aparentemente algo sobre HttpURLConnection
ha cambiado en ICS. ¿Alguien tiene alguna idea de qué ha cambiado y/o cuál es la solución?
Los documentos dicen que 'setDoOutput (verdadero)' 'implica setRequestMethod ("POST")'. ¿A qué te refieres? –
Está destinado a hacer un GET. (No escribí el código, así que no sé por qué 'setDoOutput (true)' estaba allí.) –
FWIW, 'setRequestMethod (" GET ")' y 'setDoOutput (true)' aparecen en una gran cantidad de muestras código para usar 'HttpURLConnection'. ¿Dónde está documentado que fuerza un POST? –