我使用以下行来使用Spring RestTemplate获取响应对象:
final ResponseEntity<Object> genericErrorResponse = restTemplate
.postForEntity("urlvalue.com", request,
Object.class);
我的目标是检查
if the response is 200: cast to Custom200ResponseModel
If response is 500: cast to CustomErrorModel
我收到以下错误:
org.springframework.web.client.RestClientException: Could not extract response:
no suitable HttpMessageConverter found for response type [class java.lang.Object] and content type [text/xml]
我的所有型号都有@XmlRootElement
- 我可以直接使用
response.postForObject(...)
那么最简单的方法是什么?
答案 0 :(得分:0)
在postForEntity方法中使用Custom200ResponseModel.class:
final ResponseEntity<Custom200ResponseModel> genericErrorResponse = restTemplate
.postForEntity("urlvalue.com", request,
Custom200ResponseModel.class);
这将适用于您的200响应。然后,您可以将调用包装在try catch中,并根据响应代码处理RestClientResponseException。如果异常中的响应代码是500,则可以手动创建并填充CustomErrorModel对象。
答案 1 :(得分:0)
好吧,您可以将响应作为String获取,然后使用Jackson ObjectMapper转换为您想要的任何类。