diff --git a/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java index ced2ae1767f..76496f58329 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java @@ -384,7 +384,7 @@ public class FormHttpMessageConverter implements HttpMessageConverter formData, @Nullable MediaType contentType, HttpOutputMessage outputMessage) throws IOException { - contentType = getMediaType(contentType); + contentType = getFormContentType(contentType); outputMessage.getHeaders().setContentType(contentType); Charset charset = contentType.getCharset(); @@ -402,15 +402,27 @@ public class FormHttpMessageConverter implements HttpMessageConverterSubclasses can override this method to change this behavior. + * @param contentType the preferred content type, can be {@code null} + * @return the content type to be used + * @since 5.2.2 + */ + protected MediaType getFormContentType(@Nullable MediaType contentType) { + if (contentType == null) { return DEFAULT_FORM_DATA_MEDIA_TYPE; } - else if (mediaType.getCharset() == null) { - return new MediaType(mediaType, this.charset); + else if (contentType.getCharset() == null) { + return new MediaType(contentType, this.charset); } else { - return mediaType; + return contentType; } }