2016-06-23 6 views
0

設定可能なプロキシ(リトルプロキシ)を使用して、クライアントエンド、つまりChromeブラウザから生成されたリクエストをリッスンします。投稿要求の本文が必要です。NettyのHttpObjectAggregator.AggregatedFullHttpRequestから本文を取得する必要があります

パイプラインでは、これが私が追加したものです。私は私がFullHttpRequestを取得されますが、POSTリクエストについて

pipeline.addLast("decoder", new HttpRequestDecoder(8192*4, 8192 * 8,8192 * 8)); 
pipeline.addLast("inflater", new HttpContentDecompressor()); 
pipeline.addLast("aggregator", new HttpObjectAggregator(1048576)); 
pipeline.addLast("encoder", new HttpResponseEncoder()); 

を取得し、私はこのデータ型HttpObjectAggregator#AggregatedFullHttpRequestを取得していますと思いました。私はデバッグを試みました。しかし、コンポジットバイトバフのコンセプトを理解することはできません。

これを達成する方法を教えてください。

答えて

0

問題が見つかりました。私は投げられたエラーがいくつかのbytebufの問題のためだと思った。それは、私がリクエストを聞くと、私は元のリクエストを受け取り、それを送信するからです。しかし、問題は、コンテンツ(bytebuf)がchannelReadが起動されたときに解放されるということでした。したがって、私はすでにリリースされたコンテンツにアクセスしようとしていました。だから、私はコンテンツのコピーを作成したので(channelReadが放されたときに解放されることはありません)リクエストを聞いてリスナーに渡します。だから、彼はそのコンテンツにアクセスすることができるでしょう。

関連する問題