我试图拦截并记录所有请求 - 响应.提出我正在使用的请求RestTemplate.exchange().
当我发出GET请求并得到4**错误时,我可以调用ClientHttpResponse.getBody()并且可以访问响应主体,但for PUT和POSTrequests ClientHttpResponse.getBody()方法会抛出异常.
可能导致这种情况的原因以及我如何获得响应主体POST和PUT请求?
这是我提出请求的地方:
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)