相关疑难解决方法(0)

RestTemplate response.getBody对put和post请求的4**和5**错误抛出异常但对get请求工作正常

我试图拦截并记录所有请求 - 响应.提出我正在使用的请求RestTemplate.exchange().

当我发出GET请求并得到4**错误时,我可以调用ClientHttpResponse.getBody()并且可以访问响应主体,但for PUTPOSTrequests ClientHttpResponse.getBody()方法会抛出异常.

可能导致这种情况的原因以及我如何获得响应主体POSTPUT请求?

这是我提出请求的地方:

apiResponse = restTemplate.exchange(url, vCloudRequest.getHttpMethod(), entity, responseType);
Run Code Online (Sandbox Code Playgroud)

这是获取异常的拦截器的一部分:

@Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
        ClientHttpResponse response = execution.execute(request, body);

        String requestString = new String(body);

        String responseString = new 
// Below line throws exception
String(ByteStreams.toByteArray(response.getBody()), Charset.forName("UTF-8"));
Run Code Online (Sandbox Code Playgroud)

这是堆栈.

Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://176.235.57.11/api/admin/org/bd154aaf-2e7c-446d-91be-f0a45138476b/users
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
    at …
Run Code Online (Sandbox Code Playgroud)

java spring http resttemplate

2
推荐指数
1
解决办法
2342
查看次数

标签 统计

http ×1

java ×1

resttemplate ×1

spring ×1