Browse Source

Get content as String for ContentCachingRequestWrapper

This commits adds a getContentAsString method to
ContentCachingRequestWrapper that uses the configured charset without
copying the underlying byte array.

See gh-30709
pull/31113/head
Patrick Strawderman 2 years ago committed by Stephane Nicoll
parent
commit
d9b8826142
  1. 9
      spring-web/src/main/java/org/springframework/web/util/ContentCachingRequestWrapper.java

9
spring-web/src/main/java/org/springframework/web/util/ContentCachingRequestWrapper.java

@ -21,6 +21,7 @@ import java.io.ByteArrayOutputStream; @@ -21,6 +21,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Iterator;
@ -196,6 +197,14 @@ public class ContentCachingRequestWrapper extends HttpServletRequestWrapper { @@ -196,6 +197,14 @@ public class ContentCachingRequestWrapper extends HttpServletRequestWrapper {
return this.cachedContent.toByteArray();
}
/**
* Return the cached request content as a String. The Charset used to decode
* the cached content is the same as returned by getCharacterEncoding.
*/
public String getContentAsString() {
return this.cachedContent.toString(Charset.forName(getCharacterEncoding()));
}
/**
* Template method for handling a content overflow: specifically, a request
* body being read that exceeds the specified content cache limit.

Loading…
Cancel
Save