Java RestTemplate 卡在 204 状态代码响应上

标签 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 才能修复它。但我希望应该存在另一种方式。

你能帮我解决这个问题吗?

最佳答案

请检查您是否对 httpMethod 使用 HttpMethod.Delete,并尝试在使用 delete 时将 Void.class 而非 String.class 作为交换的最后一个参数。

希望对你有帮助。

关于Java RestTemplate 卡在 204 状态代码响应上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52720812/

相关文章:

java - 不能在 java.net.http.HttpClient 上发出多个请求,否则将收到 : javax.net.ssl.SSLHandshakeException

java - SimpleClientHttpRequestFactory 与 HttpComponentsClientHttpRequestFactory 的 Http 请求超时与 RestTemplate?

javascript - 防止错误 : getaddrinfo ENOTFOUND at GetAddrInfoReqWrap. onlookup 后应用程序崩溃

java - HttpClientErrorException.getStatusText 和 HttpClientErrorException.getResponseBodyAsString 之间的区别

java - Spring RestTemplate,返回列表<String>

java - GWT依赖的解释

java - ParameterizedType.getRawType() 返回 j.l.r.Type,而不是 Class<?>?

Java 从 getUsername() 获取 NULL 值; (不同的类文件)

需要 Java SE 数组帮助

Javascript: promise 立即返回,而不是等待异步过程完成