Skip reconstructing body from request params if query present
This allows restoring optimization in StringHttpMessageConverter that was undone in 23162b for 6.0.x. Closes gh-31327
This commit is contained in:
@@ -93,7 +93,11 @@ public class StringHttpMessageConverter extends AbstractHttpMessageConverter<Str
|
||||
@Override
|
||||
protected String readInternal(Class<? extends String> clazz, HttpInputMessage inputMessage) throws IOException {
|
||||
Charset charset = getContentTypeCharset(inputMessage.getHeaders().getContentType());
|
||||
return StreamUtils.copyToString(inputMessage.getBody(), charset);
|
||||
long length = inputMessage.getHeaders().getContentLength();
|
||||
byte[] bytes = (length >= 0 && length <= Integer.MAX_VALUE ?
|
||||
inputMessage.getBody().readNBytes((int) length) :
|
||||
inputMessage.getBody().readAllBytes());
|
||||
return new String(bytes, charset);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -209,7 +209,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
|
||||
|
||||
@Override
|
||||
public InputStream getBody() throws IOException {
|
||||
if (isFormPost(this.servletRequest)) {
|
||||
if (isFormPost(this.servletRequest) && this.servletRequest.getQueryString() == null) {
|
||||
return getBodyFromServletRequestParameters(this.servletRequest);
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user