Как проверить, можно ли выполнить PUT перед отправкой тела запроса?

Примечание: мы используем lib_neon на стороне клиента и Tomcat и сервлет API на стороне сервера.

Проблема заключается в следующем: когда клиент хочет поместить некоторый контент, он выполняет запрос PUT с заголовком "Expect: 100-continue", Tomcat обрабатывает его, просто возвращая статус 100 Continue, и после этого клиент начинает отправлять оставшуюся часть запроса. и он обрабатывается нашими пользовательскими фильтрами и часто не проходит (например, пользователь не авторизован или пытается поместить слишком большой файл, превышающий лимит пользователей или что-то еще). Фильтр отправляет ответ об ошибке без перерыва, но клиент читает ответ только тогда, когда полное тело запроса передано.

Кажется, что невозможно вручную отправить что-то вместо 100 Продолжить статус, когда какая-то проверка не проходит, и это поведение жестко запрограммировано в tomcat, есть ли другой способ не загружать тело запроса, когда это невозможно?

1 ответ

Решение

Вам нужен контейнер сервлетов с более вменяемой обработкой на 100 штук (я думаю, что пристань подходит).

Я не могу поверить, что это разъяснение все еще не является частью спецификации сервлета; Мне кажется, я просил об этом что-то вроде 7 лет назад.

Другие вопросы по тегам