0

HttpClient が長い StringEntity を投稿/配置する際に問題が発生しています。エンティティが短い場合は、まったく問題ありません。ただし、長さが値 (約 1400 文字) を超えると、http パケットを送信できなくなります (WireShark を使用してインターフェイスをスニッフィングしました)。実際には、接続は確立されていますが、データが送信されていないため、受信側でタイムアウト例外が発生しました。これらが長さの制限であるかどうか疑問に思っています。接続タイムアウトとソケットタイムアウトを増やそうとしましたが、タイムアウトを確認するのに時間がかかりました...そして、InputStreamEntityも使用しようとしましたが、どちらも機能しませんでした。

[更新] : HttpClient の代わりに HttpURLConnection を直接使用しようとしました。同じ問題がまだ存在します。ただし、いくつかの発見があります。(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

それはあなたを助けることができると思います

于 2011-04-25T23:35:49.417 に答える