0

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

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

4

3 回答 3

1

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

于 2011-04-28T03:30:21.873 回答
0

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

于 2011-04-25T23:35:29.307 回答
0

我认为这可以帮助你urllength

于 2011-04-25T23:35:49.417 回答