Die Methoden von RestTemplate
wie postForEntity()
werfen RestClientException
. Ich möchte den HTTP-Statuscode und den Antworttext aus diesem Ausnahmeobjekt im catch-Block extrahieren. Wie kann ich das machen?Wie kann ich den HTTP-Statuscode und den Antworttext abrufen, wenn eine RestClientException ausgelöst wird?
9
A
Antwort
17
Anstatt RestClientException
zu fangen, fangen Sie die spezielle HttpClientErrorException
.
Hier ist ein Beispiel:
try {
Link dataCenterLink = serviceInstance.getLink("dataCenter");
String dataCenterUrl = dataCenterLink.getHref();
DataCenterResource dataCenter =
restTemplate.getForObject(dataCenterUrl, DataCenterResource.class);
serviceInstance.setDataCenter(dataCenter);
} catch (HttpClientErrorException e) {
HttpStatus status = e.getStatusCode();
if (status != HttpStatus.NOT_FOUND) { throw e; }
}
HttpClientErrorException
bietet getStatusCode
und getResponseBodyAsByteArray
den Statuscode und Körper zu bekommen sind.
Verwandte Themen
- 1. Ich sehe den Antworttext in den Chrome-Entwicklertools, kann ihn aber nicht im Frontend abrufen.
- 2. Kann ich den Veröffentlichungsseitengenehmiger und den Seitenstatus im Workflow abrufen?
- 3. ng-blur wird nicht ausgelöst, wenn ich den Fokus verliere
- 4. Abrufen des Feldnamens, wenn javax.validation.ConstraintViolationException ausgelöst wird
- 5. Wie bekomme ich den Antworttext eines XHR in jQuery?
- 6. Blur-Ereignis ausgelöst wird, wenn Kind den Fokus erhält
- 7. Wie kann ich den Fensterstatus speichern und abrufen?
- 8. So analysieren Sie den Antworttext in Java, wenn die HTTP-Anforderung den Status "zurück" hat 401
- 9. Java Swing - Kann ich den Namen auf der Registerkarte ändern, wenn ein Ereignis ausgelöst wird?
- 10. Wie kann ich den Namen des S3-Buckets abrufen, den eine CloudFront-Distribution verwendet?
- 11. Was ist das erste Ereignis, das ausgelöst wird, wenn eine Webseite in den Browser geladen wird
- 12. Wie kann ich den Schlüssel und den Wert in einem Apex für die Schleife abrufen?
- 13. Wie kann ich den aktuellen Wert des Bereichsschiebereglers abrufen?
- 14. Wie kann ich den Wert in Schienen regelmäßig abrufen/aktualisieren?
- 15. Warum wird eine ClassCastException nur ausgelöst, wenn auf den Rückgabewert zugegriffen wird?
- 16. Wie kann ich den Pfad zu den allgemeinen Desktop- und Startmenü-Verzeichnissen in C# abrufen?
- 17. Wie erhält man den Antworttext eines DELETE mit TIdHttp?
- 18. Wie kann ich den Cache-Busting-Zeitstempel von Rails abrufen?
- 19. Wie kann ich den Pfad einer kompilierten Ressource abrufen?
- 20. Wie kann ich den Fokus auf den ausgewählten Text halten, wenn ich auf eine Schaltfläche klicke?
- 21. Wie kann ich den Inhalt einer HTTPS-Webseite abrufen?
- 22. Wie kann ich den IIS-Substatuscode von einer Exception abrufen?
- 23. Wenn Validierungsausnahme ausgelöst wird?
- 24. Wie kann ich den Registrierungskontext von AccessViolationException abrufen?
- 25. Wie kann ich den Aktionsnamen in einem Symfony2-Controller abrufen?
- 26. Wie kann ich eine Ausnahme "Index war außerhalb des gültigen Bereichs" debuggen? Oder kann ich VS in den Debug-Modus versetzen, wenn eine Ausnahme ausgelöst wird?
- 27. Wie kann ich den Installationspfad einer anderen Anwendung programmgesteuert abrufen?
- 28. Wie kann ich den Sekundenanteil von TIME in cmd abrufen?
- 29. Wie finde ich den Grund, warum EETypeLoadException ausgelöst wurde?
- 30. Wie kann ich den Namespace zu einer Zeichenfolge abrufen C#
Ich habe Ihre Antwort bearbeitet, um weitere nützliche Details hinzuzufügen und diese Frage/Antwort nützlicher zu machen. –
Große Bearbeitung. Vielen Dank! –
generischer ist 'HttpStatusCodeException' geerbt von' HttpClientErrorException' und 'HttpServerErrorException'. –