HttpUrlConnection.getInputStream gibt einen leeren Stream in Android zurück
Ich stelle mit HttpUrlConnection eine GET-Anfrage an einen Server. Nach dem Anschließen:
Ich erhalte den Antwortcode: 200Ich erhalte die Antwortnachricht: OKIch erhalte einen Eingabestream, keine Ausnahme, aber:
In einem eigenständigen Programm erhalte ich wie erwartet den Hauptteil der Antwort:{"name": "my name", "birthday": "01/01/1970", "id": "100002215110084"}
In einer Android-Aktivität ist der Stream leer (available () == 0) und daher kann ich keinen Text ausgeben.Irgendwelche Hinweise oder Spuren, denen Sie folgen sollten? Vielen Dank.
EDIT: hier ist es der Code
Bitte beachten Sie: Ich benutzeimport java.net.HttpURLConnection;
Dies ist die Standard-http-Java-Bibliothek.Ich möchte keine andere externe Bibliothek verwenden. In der Tat hatte ich Probleme in Android mit der Bibliothek httpclient von Apache (einige ihrer anonymen .class kann nicht vom Apk-Compiler verwendet werden).
Nun, der Code:
URLConnection theConnection;
theConnection = new URL("www.example.com?query=value").openConnection();
theConnection.setRequestProperty("Accept-Charset", "UTF-8");
HttpURLConnection httpConn = (HttpURLConnection) theConnection;
int responseCode = httpConn.getResponseCode();
String responseMessage = httpConn.getResponseMessage();
InputStream is = null;
if (responseCode >= 400) {
is = httpConn.getErrorStream();
} else {
is = httpConn.getInputStream();
}
String resp = responseCode + "\n" + responseMessage + "\n>" + Util.streamToString(is) + "<\n";
return resp;
Aha:
200
OK
der Körper der Antwort
aber nur
200 OK
in Android