2016-06-03 4 views
-1

ich Legacy-Code bin Aktualisierung, die die Austausch Methode von Spring 3.1 RestTemplate Klasse Framework verwendet. Ich stieß auf eine wichtige Unterlassung von Details. Wenn der restliche Client, mit dem ich zu kommunizieren versuche, einen 400-Statuscode zurückgibt, wird eine HttpClientErrorException ausgelöst, aber es gibt keinen Antworttext, der Auskunft darüber gibt, warum der Server die Anfrage zurückgewiesen hat. Es sieht so aus, als ob es keine Möglichkeit gibt, den Antwortkörper zu finden, der sehr hilfreiche Informationen liefern würde.Frühling HttpClientErrorException keine Einzelheiten aus Antworttext

Ich muss nicht herausfinden, was in meinem Anrufcode falsch ist, wie ich das bereits getan habe. Ich möchte nur wissen, ob es eine Möglichkeit gibt, auf die HTTP-Antwort zuzugreifen und sie zu protokollieren, wenn bei dem Aufruf ein Fehler auftritt.

+0

Aus dem Code sieht es aus wie alle diese Informationen enthalten in 'HttpClientErrorException': [DefaultResponseErrorHandler @ 90] (https: // github.com/spring-projects/spring-framework/blob/v3.1.4.RELEASE/org.springframework.web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java#L90) – Roman

+0

Danke für Ihre Kommentar. Es gab keinen Antworttext, als die Ausnahme ausgelöst wurde. Das ist alles, was ich mit der Stapelverfolgung zurückbekomme. 'org.springframework.web.client.HttpClientErrorException: 400 Bad Request' – gogogadgetgeek

+0

Ah ... vergiss ich sehe es. Es gibt eine tatsächliche Methode für die Ausnahme, um den Antworttext zu erhalten. – gogogadgetgeek

Antwort

1

Der Antworttext ist eigentlich eine Eigenschaft von HttpClientErrorException. Es kann über die folgenden zwei Accessoren zugegriffen werden, die sie von der übergeordneten Klasse erbt HttpStatusCodeException:

public byte[] getResponseBodyAsByteArray() 
public String getResponseBodyAsString() 
Verwandte Themen