411 Требуемая длина В запросе не указана длина его содержимого, которое требуется запрашиваемому ресурсу.WebAPI и код состояния 411 «Требуемая длина»
У меня есть следующий код:
[HttpPost]
[Route("UploadFileAsync/{RequestID}")]
public async Task<HttpResponseMessage> UploadFileAsync(int RequestID)
{
SetUser();
long maxAllowedFileSize = 9999999;
long? contentLenght = Request.Content.Headers.ContentLength;
if (!contentLenght.HasValue || contentLenght.Value > maxAllowedFileSize)
{
return Request.CreateErrorResponse(HttpStatusCode.LengthRequired, "Please set content lenght and file size should be less than 10 Mb");
}
Он работает и вернуть код состояния 411, когда размер запроса больше, чем 9999999.
Но я хотел бы проверить его перед загрузкой всех запрос на сервер (как я понимаю, смысл этого кода статуса 411 для предотвращения загрузки больших файлов, если сервер не может его обработать). Как я могу отклонить запрос и отправить код статуса 411 перед отправкой всего запроса на сервер?
: «Зарегистрируйте пользовательский фильтр в файле WebApiConfig». ИЛИ «Украсить действие, для которого вы хотите применить этот фильтр, с вашим настраиваемым атрибутом» :) –
Правильно. Когда вы добавляете настраиваемый фильтр в файл WebApiConfig, фильтр применяется ко всем контроллерам в веб-интерфейсе. Чтобы применить его к выборочным действиям внутри контроллера, украсьте действие с помощью атрибута настраиваемого фильтра. –