接收带和不带主体的spring响应

yh2wf1be  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(317)

如何实现一个rest调用,它有时可能不返回任何实体?

我的springboot应用程序通过RESTHTTP调用外部服务,并通过 org.springframework.web.client 客户和方法 public <T> ResponseEntity<T> exchange .
到目前为止,客户端始终收到一个字符串体-> ResponseEntity<String> . 前一段时间,我们调用的服务返回http 202,但没有正文,因此引发以下异常: java.lang.IllegalArgumentException: argument "content" is null .
如何告诉spring忽略202状态代码的主体?

xlpyo6sf

xlpyo6sf1#

如果服务未返回响应正文,则可以使用void作为responseentity的泛型类型参数:

ResponseEntity<Void> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, Void.class)

如果服务有时返回响应,您可以将响应作为 String . 对于空响应,您将收到一个空字符串。对于非空响应,您需要自己反序列化返回的负载。

ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class)
if (Strings.isEmpty(res.getBody())) {
    // handle empty response
} else {
    // handle non-empty response
}

相关问题