0

netty 4.0.9 (または 12) HttpUploadClient の方法を使用して、大きな (>8K) ポスト リクエストを送信しました。ただし、最初のチャンクがサーバーに送信された後、サーバーは「100 continue」を返しました。ChunkedWriteHandler は、残りのチャンクを送信するための「100 Continue」を処理しませんでした。代わりに、処理できないトップ ハンドラの上流に 100 Continue が渡されました。ChunkedWriteHandler を変更して "100 Continue" 応答を処理し、残りのチャンクの送信を再開して大きな投稿要求を終了するにはどうすればよいですか?

4

2 に答える 2

0

このバグは、AbstractMemoryHttpData.java getChunk() 関数の 4.0.15 で修正されています。

例外は、AbstractByteBuf.java の IllegalReferenceCountException でした。

ただし、ChunkedWriteHandler.java doFlush() には catch(final Throwable t) があり、明示的にチェックしない限り、将来の他の例外の伝播を妨げる可能性があります。

于 2014-03-07T21:05:09.623 に答える
0

ChunkedWriteHandlerはプロトコルに依存しないハンドラーであるため、HTTP に固有のものを追加しないでください。

代わりに、パイプラインの最後のハンドラーを更新して、100-Continue メッセージを理解できるようにすることができます。チャンクを書き込む前に、まず 100-Continue 応答を待つことをお勧めします。

または、リクエストからヘッダーを削除することもできます。そうすればExpect: 100-continue、HTTP サーバーはそのようなレスポンスを送信しなくなります。

于 2013-11-15T02:01:08.453 に答える