HTTP-ответ 411 Длина требуется, Http Client 4.0.1 Android - PullRequest
3 голосов
/ 09 июля 2010

Я отправляю запрос http в API Google Reader и получаю необычный код ответа.Следуя документации, я запросил код авторизации и включил его в заголовок каждого запроса.выполнив вход в систему и получив код авторизации, я попытался получить доступ к этому URL-адресу, который является частью документации:

http://www.google.com/reader/api/0/stream/items/contents

при отправке запроса я получаю статус 411код, который должен означать «Требуемая длина».длина, как я обнаружил, должна быть длиной в октетах тела сообщения.в этом запросе нет тела сообщения.есть только один заголовок, параметр POST i = "item id" и сам URL.я попытался установить для заголовка «Content-Length» значение «0», а также «-1», но безрезультатно.

Что действительно интересно, так это то, что этот код работал нормально до того, как Google изменил процедуру авторизации.очевидно, что они изменили что-то еще ...

, поэтому мой вопрос в том, что ТОЧНО вызовет код ответа 411 и как я могу предотвратить это?

1 Ответ

2 голосов
/ 24 февраля 2012

Эта ошибка возникает только с типами запросов POST и PUT, так как эти два (вроде) ожидают иметь тело запроса, которое включает параметры запроса (как текстовые, так и вложения).

Однако, как иДокументация предполагает, что это в значительной степени устаревшее значение, и реально веб-сервисы должны обрабатывать запросы, не полагаясь на Content-Length.

Так что это не проблема отправителя запроса, но это (я бы сказал) ошибка на стороне службы.

Тем не менее, установка Content-Length (обратите внимание на правильную прописную букву)заголовок запроса до 0 должен быть обходным путем.

...