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?

whlk
quelle

Antworten:

211

Dies gibt den intWert zurück:

response.getStatusLine().getStatusCode()
Robby Pond
quelle
30
Dann können Sie mit den HTTP-Statuscodes developer.android.com/reference/org/apache/http/HttpStatus.html vergleichen
thanhbinh84
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){
...
}
NickUnuchek
quelle