RestTemplate - Manipulation des en-têtes/du corps dans les Exceptions (RestClientException, HttpStatusCodeException)
Dans mon reposant webservice, en cas de bad request (5xx) ou 4xx respose codes, je vous en écrire un en-tête personnalisé "x-app-err-id" pour la réponse.
Sur le côté client, j'utilise la méthode d'échange de RestTemplate de faire un service web RestFul appel. Tout est parfait lorsque le code de réponse est 2xx.
ResponseEntity<Component> response = restTemplate.exchange(webSvcURL,
HttpMethod.POST,
requestEntity,
Component.class);
Mais si il y a une exception(HttpStatusCodeException) à cause de cela d'être un mauvais demande(5xx) ou 4xx, dans le bloc catch de HttpStatusCodeException, je reçois la réponse(voir ci-dessus) comme nulle et donc je n'ai pas accès à mon en-tête personnalisé j'ai mis dans mon service web. Comment puis-je obtenir des en-têtes personnalisés à partir de la réponse en cas d'exceptions dans le RestTemplate.
Une question de plus est, j'ai mis un objet d'erreur(json) dans la reponse du corps en cas d'erreur et je voudrais savoir comment accéder aux corps de la réponse ainsi dans le cas où des exceptions dans le RestTemplate
- Vous pouvez visiter soufflet fil. Il a plein de travail code avec description: stackoverflow.com/a/51805956/3073945
Vous devez vous connecter pour publier un commentaire.
Je l'ai enfin fait à l'aide de ResponseErrorHandler.
Et ensuite utiliser cette réponse personnalisée gestionnaire pour RestTemplate par la configuration comme indiqué ci-dessous
Vous ne devriez pas avoir à créer un gestionnaire d'erreur personnalisé. Vous pouvez obtenir le corps et les en-têtes de la HttpStatusCodeException qui obtient jeté.