Java RestTemplate挂在204状态码响应上

时间:2018-10-09 12:13:51

标签: java httprequest resttemplate rest-client spring-web

我正在创建测试框架,并将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进行修复。但我希望应该有另一种方式。

您能帮我吗?

1 个答案:

答案 0 :(得分:0)

请检查是否对HttpMethod使用HttpMethod.Delete,并尝试在使用delete将交换的最后一个参数(不是String.class而是Void.class)放置为交换的最后一个参数时。

希望对您有帮助。