Как проверить, можно ли выполнить PUT перед отправкой тела запроса? - PullRequest
4 голосов
/ 09 ноября 2010

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

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

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

1 Ответ

6 голосов
/ 09 ноября 2010

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

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

...