HTTP响应411长度必需,Http Client 4.0.1 Android

时间:2010-07-08 23:43:34

标签: android http httpclient google-reader

我正在向谷歌阅读器api发送一个http请求,并获得一个不寻常的响应代码。在文档之后,我已经请求了一个auth代码并将其包含在每个请求的标题中。在执行登录并获取身份验证代码后,我尝试访问此URL,这是文档的一部分:

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

当我发送请求时,我得到411状态代码,该代码应该表示“需要长度”。正如我所发现的那样,长度应该是消息体的八位字节长度。此请求中没有邮件正文。只有一个标题,POST参数i =“item id”和URL本身。我尝试将“Content-Length”标题设置为“0”并将“-1”设置为无效。

真正有趣的是,在谷歌更改授权程序之前,相同的代码工作正常。显然他们已经改变了别的东西......

所以我的问题是什么会导致411响应代码,我该如何防止它呢?

1 个答案:

答案 0 :(得分:2)

此错误仅发生在POST和PUT请求类型中,因为这两个(有点)期望具有包含请求参数的请求主体(纯文本以及附件)。

然而,正如文档所示,这在很大程度上是一个过时的价值,实际上,Web服务应该处理请求而不依赖于Content-Length。

所以这不是请求发送者的问题,但它(我会说)是服务端的错误。

尽管如此,将Content-Length(介意正确的大小写)请求标头设置为0应该是解决方法。