[Android] HttpClient post / put StringEntity长度限制?

时间:2011-04-25 23:26:41

标签: android post httpclient put

我发现HttpClient发布/放置一个长StringEntity存在问题。当实体很短时,根本没有问题。但是,当长度超过一个值(大约1400个字符)时,http数据包永远不会被发送出去(我使用WireShark嗅探了接口)。实际上,连接已建立,但数据未传输,因此接收方获得了超时异常。 我想知道这些是否是一个长度限制。 我试图增加连接超时和套接字超时,这只让我等待更长时间才能看到超时... 我也尝试使用InputStreamEntity,也没用。

[更新] :我尝试直接使用HttpURLConnection而不是HttpClient。同样的问题仍然存在。但是,我确实有一些发现。当我强制将数据包切割成块时(使用HttpURLConnection.setChunkedStreamingMode),WireShare确实捕获了数据包的某些部分,而之前的部分丢失了。我想这肯定是apache http库中的一个错误。

3 个答案:

答案 0 :(得分:1)

问题已解决。我花了几天时间才发现,问题出在我的无线路由器上。它有一些奇怪的设置会截断大量传入的http消息。

答案 1 :(得分:0)

它可能在服务器端超时。还要确保使用org.apache.client.httpclient jar。官方网站没有最大长度。看这里http://www.w3.org/Protocols/rfc2616/rfc2616.html

答案 2 :(得分:0)

我认为这可以帮助你urllength