为什么使用RestTemplate时ResponseEntity总是为null



我想做一个postForEntity,但结果总是空的。原因是什么?

@Override
public ResponseEntity<Void> updateContactProperty(final Long contactId, final String json) throws RestClientException {
ResponseEntity<Void> crmResponse = null;
try {
crmResponse = crmRestTemplate.postForEntity(
"https://api.hubapi.com/contacts/v1/contact/vid/400000001/profile?hapikey=myApiKey", json, Void.class);
}  catch (HttpClientErrorException e) {
e.printStackTrace();
} catch (HttpStatusCodeException e) {
e.printStackTrace();
}catch (RestClientException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} catch (Error r) {
r.printStackTrace();
} catch (Throwable t) {
t.printStackTrace();
}
return crmResponse;
}

我试过ResponseEntity<Void>ResponseEntity<Object>ResponseEntity<String>

向RestTemplate:注册的MessageConverters

  1. ByteArrayHttpMessageConverter
  2. StringHttpMessageConverter
  3. 资源HttpMessageConverter
  4. SourceHttpMessageConverter
  5. AllEncompassingFormHttpMessageConverter
  6. Jaxb2RootElementHttpMessageConverter
  7. 映射Jackson2HttpMessageConverter

无法捕获任何异常。。。电话刚刚接通,但什么也没发生。

问题是请求的API使用HttpStatusCodeException和空主体进行响应。HttpStatusCodeException是从RestClientException派生而来的,因为我首先捕获了RestClientException,所以它已经被消耗掉了,而且在捕获它之后,我没有向updateContactProperty(...)方法的调用方填充异常,所以调用方永远不会注意到返回了响应(或异常(。

相关内容

  • 没有找到相关文章

最新更新