|
20 | 20 | import java.lang.reflect.Field;
|
21 | 21 | import java.net.URISyntaxException;
|
22 | 22 | import java.nio.ByteBuffer;
|
| 23 | +import java.nio.charset.Charset; |
23 | 24 | import javax.servlet.AsyncContext;
|
24 | 25 | import javax.servlet.ServletRequest;
|
25 | 26 | import javax.servlet.ServletResponse;
|
|
37 | 38 | import org.springframework.core.io.buffer.DataBufferFactory;
|
38 | 39 | import org.springframework.core.io.buffer.DataBufferUtils;
|
39 | 40 | import org.springframework.http.HttpHeaders;
|
| 41 | +import org.springframework.http.MediaType; |
40 | 42 | import org.springframework.util.Assert;
|
41 | 43 | import org.springframework.util.ReflectionUtils;
|
42 | 44 |
|
@@ -159,6 +161,19 @@ private static HttpHeaders createTomcatHttpHeaders(HttpServletResponse response)
|
159 | 161 |
|
160 | 162 | @Override
|
161 | 163 | protected void applyHeaders() {
|
| 164 | + HttpServletResponse response = getNativeResponse(); |
| 165 | + MediaType contentType = getHeaders().getContentType(); |
| 166 | + if (response.getContentType() == null && contentType != null) { |
| 167 | + response.setContentType(contentType.toString()); |
| 168 | + } |
| 169 | + Charset charset = (contentType != null ? contentType.getCharset() : null); |
| 170 | + if (response.getCharacterEncoding() == null && charset != null) { |
| 171 | + response.setCharacterEncoding(charset.name()); |
| 172 | + } |
| 173 | + long contentLength = getHeaders().getContentLength(); |
| 174 | + if (contentLength != -1) { |
| 175 | + response.setContentLengthLong(contentLength); |
| 176 | + } |
162 | 177 | }
|
163 | 178 |
|
164 | 179 | @Override
|
|
0 commit comments