title: Log Request and response in Spring API
body: <p>I want to implement Rest logging for API using Spring. I tried this:</p>
  
  <pre><code>public static String readPayload(final HttpServletRequest request) throws IOException {
        String payloadData = null;
        ContentCachingRequestWrapper contentCachingRequestWrapper = WebUtils.getNativeRequest(request, ContentCachingRequestWrapper.class);
        if (null != contentCachingRequestWrapper) {
            byte[] buf = contentCachingRequestWrapper.getContentAsByteArray();
            if (buf.length &gt; 0) {
                payloadData = new String(buf, 0, buf.length, contentCachingRequestWrapper.getCharacterEncoding());
            }
        }
        return payloadData;
    }  
  
    public static String getResponseData(final HttpServletResponse response) throws IOException {
          String payload = null;
          ContentCachingResponseWrapper wrapper =
              WebUtils.getNativeResponse(response, ContentCachingResponseWrapper.class);
          if (wrapper != null) {
              byte[] buf = wrapper.getContentAsByteArray();
              if (buf.length &gt; 0) {
                  payload = new String(buf, 0, buf.length, wrapper.getCharacterEncoding());
                  wrapper.copyBodyToResponse();
              }
          }
          return payload;
      }
  
  
  
    @PostMapping(value = "/v1", consumes = { MediaType.APPLICATION_XML_VALUE,
        MediaType.APPLICATION_JSON_VALUE }, produces = { MediaType.APPLICATION_XML_VALUE,
            MediaType.APPLICATION_JSON_VALUE })
    public PaymentResponse handleMessage(HttpServletRequest request, HttpServletResponse response) throws Exception {
  
  
        HttpServletRequest requestCacheWrapperObject = new ContentCachingRequestWrapper(request);
        requestCacheWrapperObject.getParameterMap();
  
        .raw_request(readPayload(requestCacheWrapperObject))
        .raw_response(getResponseData(response))
    }
  </code></pre>
  
  <p>But I get NULL for request and response.
  Do you know what is the proper way to get the payload from the request and the response?</p>