我正在创建测试框架并使用 RestTemplate 类来创建 HTTP 请求。
一般情况下我使用下一个代码:
Response response = null;
ResponseEntity<String> responseEntity = null;
try{
responseEntity = getRest().exchange(url, httpMethod, httpEntity, String.class);
response = new Response(
responseEntity.getStatusCodeValue(),
responseEntity.getStatusCode().getReasonPhrase(),
responseEntity.getBody(),
responseEntity.getHeaders()
);
} catch (HttpStatusCodeException e){
response = new Response(
e.getRawStatusCode(),
e.getStatusText(),
e.getResponseBodyAsString(),
e.getResponseHeaders()
);
}
它适用于所有情况,除了 DELETE HTTP 方法,该方法接收 204 状态代码和空正文作为响应。
现在,我必须重新初始化 RestTemplate 才能修复它。但我希望应该存在另一种方式。
你能帮我解决这个问题吗?
最佳答案
请检查您是否对 httpMethod 使用 HttpMethod.Delete,并尝试在使用 delete 时将 Void.class 而非 String.class 作为交换的最后一个参数。
希望对你有帮助。
关于Java RestTemplate 卡在 204 状态代码响应上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52720812/