Я работаю над программой Java, которая реализует HTTP-клиент. Я тестирую отправку запросов на сервер. Запросы GET, POST и DELETE работают нормально. Например, после запроса POST я получаю вывод
Data extracted:
{"status":{"message":"ok"}}
и база данных отражает сделанные изменения.
Однако после запроса PUT я получаю следующую html-разметку веб-страницы, указывающую на ошибку.
Data extracted:
<html>
<head><title>411 Length Required</title></head>
<body bgcolor="white">
<center><h1>411 Length Required</h1></center>
<hr><center>nginx/1.2.6</center>
</body>
</html>
и соответственно никаких изменений в базе.
Я обнаружил, что это может иметь какое-то отношение к заголовку Content-Length, но я не уверен. После попытки добавить этот заголовок моя программа ждет минуту, а затем выдает исключение, сообщающее, что она не может обработать ответ сервера.
Я также могу предоставить любой код или трассировку стека, если это необходимо.
setHeader("Content-Length", "" + file.length())
соотв.setContentLength((int)file.length());
или около того. - person Joop Eggen   schedule 25.03.2013Content-Length
не работала (я получал ту же ошибку 411), поэтому мне пришлось установить фиктивное содержимое в запросе, чтобы заставить его работать. - person Denis Kniazhev   schedule 17.05.2018