Как удалить Transfer-Encoding: chunked в ответе HTTP
Я создал конечную точку HTTP (REST в Java, Spring Framework, Apache Tomcat), в которой ответ HTTP имеет заголовок "Transfer-Encoding: chunked". Я не знаю, создан ли он сервлетом или сервером.
Я не хочу, чтобы конечная точка отвечала на этот заголовок. Можно ли заставить его не отправлять этот заголовок?
1 ответ
Возможно, это происходит потому, что ответ больше, чем буфер ответов, поэтому среда выполнения вынуждена сбрасываться до завершения ответа. Поскольку заголовки должны быть отправлены до ответа и Content-Length
заголовок неизвестен, он устанавливает Transfer-Encoding: chunked
вместо.
Вы можете установить размер выходного буфера для коннектора Tomcat: см. Здесь, атрибут socketBuffer
для стандарта и socket.appWriteBufSize
для НИО. Это устанавливает размер буфера для всего содержимого сервлета, вероятно, не то, что вы хотите.
Вы можете перехватить определенные URL-адреса, которые требуют больший буфер с фильтром сервлета и использовать response.setBufferSize(NNN)
,