netty 4 (netty-all-4.0.9.jar を使用) サービスをインスタンス化し、3 つの ChannelHandler オブジェクトを追加してチャネルを初期化しました。
pipeline.addLast("decoder", new HttpRequestDecoder());
pipeline.addLast("encoder", new HttpResponseEncoder());
pipeline.addLast("handler", new MyHandler());
HTTP PUT
私のサーバーにファイルをカールさせてテストすると、ヘッダーが送信さMyHandler.channelRead
れたリクエストに対してすぐに呼び出されないことがわかりました(カールはサーバーが応答Expect: 100-continue
するのを待っています100 Continue
.これは、ハンドラーがHTTP/1.1 100 Continue
client (curl) を使用して、ファイルの実際のアップロードをすぐに開始します。
興味深いことに、この問題をさらにデバッグすると、実際の本文がアップロードされた直後 (最初のバイトが受信された直後) にtelnet
aが呼び出されることがわかります。channelRead
PUT
「Expect: 100-continue」ヘッダーを使用してリクエストを適切に処理し、100 Continue
レスポンスをすぐにトリガーする方法に関するヒントはありますか?