我通过下面的代码通过RestTemplate调用Restservice:
请求响应= ResponseEntity RestTemplate().postForEntity(url,request,String.class);
当客户端出现错误时,它会抛出下面的错误:
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:85)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:708)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:661)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:621)
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:415)但是,当我通过SOAPUI或Postman直接访问相同的输入请求时,我得到如下错误:
<Errors>
<Error ErrorCode="YFS10003" ErrorDescription="YFS:Invalid Order" ErrorUniqueExceptionId="10.148.201.9815264936514610000000000060" HttpCode="400">
<Attribute Name="ErrorDescription" Value="YFS:Invalid Order"/>
<Attribute Name="ErrorUniqueExceptionId" Value="10.148.201.9815264936514610000000000060"/>
<Attribute Name="ErrorCode" Value="YFS10003"/>
<Attribute Name="HttpCode" Value="400"/>
</Error>
</Errors>我需要的是,我如何存储或捕获以上异常/错误什么是通过客户端的代码和打印来有更详细的知识,为什么错误来了,而不是得到一个通用的错误作为400错误的请求。
有没有办法通过ResponseErrorHandler类?
提前谢谢。
发布于 2018-05-18 04:25:32
如果您仔细研究一下RestTemplate API,就会发现RestTemplate#setErrorHandler方法,您可以在其中定义自定义ErrorHandler并执行所需的代码,在本例中,打印出消息本身。
默认情况下,RestTemplate使用DefaultResponseErrorHandler,它只是在发生任何错误的情况下抛出异常。
https://stackoverflow.com/questions/50398783
复制相似问题