Android erhält eine Antwort nach 403 in HttpClient

8

Ich habe einen Code wie folgt:

%Vor%

Und ich möchte eine Antwort haben, auch wenn ich HTTP 403 verboten habe, Fehlermeldung

zu erhalten     
skayred 11.08.2011, 11:42
quelle

2 Antworten

12

Das BasicResponseHandler gibt nur Ihre Daten zurück, wenn ein Erfolgscode (2xx) zurückgegeben wurde. Sie können jedoch sehr einfach Ihre eigene ResponseHandler schreiben, um den Hauptteil der Antwort immer als String , z. B.

, zurückzugeben %Vor%

Alternativ können Sie die andere überladene Ausführungsmethode für HttpClient , die keine ResponseHandler benötigt und dir direkt% code_de% zurückgibt. Rufen Sie dann HttpResponse auf die gleiche Weise auf.

Um den Statuscode einer Antwort zu erhalten, können Sie EntityUtils.toString(response.getEntity()) verwenden und mit einem der statischen Ints in der Klasse HttpResponse.getStatusLine().getStatusCode() vergleichen. Z.B. Code '403' ist HttpStatus . Abhängig vom zurückgegebenen Statuscode können Sie bestimmte Aktionen für Ihre Anwendung durchführen.

    
antonyt 11.08.2011, 12:11
quelle
2

Laut der Dokumentation für BasicResponseHandler :

  

Wenn die Antwort nicht erfolgreich war (& gt; = 300 Statuscode), wird ein HttpResponseException ausgelöst.

Sie könnten diesen Typ von Ausnahme abfangen (Hinweis: Sie fangen bereits den Supertyp dieser Ausnahme ClientProtocolException ) und Sie könnten eine benutzerdefinierte Logik in diesen catch-Block legen, um eine Antwort zu erstellen / speichern, wenn Sie eine Fehlersituation feststellen. wie die 403.

    
stephendnicholas 11.08.2011 12:04
quelle