Android: So erhalten Sie den Statuscode einer HttpClient-Anfrage


90

Ich möchte eine Datei herunterladen und muss den Antwortstatuscode (dh HTTP /1.1 200 OK) überprüfen . Dies ist ein Ausschnitt aus meinem Code:

HttpGet httpRequest = new HttpGet(myUri);
HttpEntity httpEntity = null;
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httpRequest);
...

Wie erhalte ich den Statuscode der Antwort?

Antworten:


211

Dies gibt den intWert zurück:

response.getStatusLine().getStatusCode()


2
Gibt es eine bessere Klasse, da HttpStatus eine veraltete Klasse ist?
Gaara87

@ AkashRamani - Ja, verwenden Sie einfach die HttpUrlConnection-Methode: .getResponseCode ()
Nikita Kurtin

1
@NikitaKurtin sicher, dass eine Ganzzahl zurückgegeben wird, aber woher wissen Sie, wie der HTTP-Antwortstatus des tatsächlichen Antwortcodes lautet? Wie würden Sie wissen, ob es erfolgreich ist? Ich will nicht sagen if(getResponseCode()==200). Ich würde lieber sagen if(getResponseCode()==HttpStatus.RESPONSE_OK)oder so etwas.
gaara87

3
@AkashRamani, Ja, dafür gibt es int Konstanten innerhalb der Klasse. Zum Beispiel HttpURLConnection.HTTP_OK (200 -> http ok status) HttpURLConnection.HTTP_NOT_FOUND (404 -> nicht gefunden) usw. Die vollständige Liste der verfügbaren Konstanten finden Sie in der Klassenreferenz: developer.android.com/reference/java/ net /…
Nikita Kurtin

9
if (response.getStatusLine().getStatusCode()== HttpsURLConnection.HTTP_OK){
...
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.