diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java index 6c681e5479..c5b527b4ad 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java @@ -687,6 +687,13 @@ public class MockHttpServletRequestBuilder } }); + if (!ObjectUtils.isEmpty(this.content) && + !this.headers.containsKey(HttpHeaders.CONTENT_LENGTH) && + !this.headers.containsKey(HttpHeaders.TRANSFER_ENCODING)) { + + request.addHeader(HttpHeaders.CONTENT_LENGTH, this.content.length); + } + String query = this.url.getRawQuery(); if (!this.queryParams.isEmpty()) { String s = UriComponentsBuilder.newInstance().queryParams(this.queryParams).build().encode().getQuery(); diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java index 405bfdb46d..ae111d7877 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java @@ -389,6 +389,7 @@ public class MockHttpServletRequestBuilderTests { byte[] result = FileCopyUtils.copyToByteArray(request.getInputStream()); assertThat(result).isEqualTo(body); + assertThat(request.getContentLength()).isEqualTo(body.length); } @Test