GitHub:LittleProxyに示されている簡単な例に従い、clientToProxyRequest(HttpObject httpObject)
メソッドに以下を追加しました。
public HttpResponse clientToProxyRequest(HttpObject httpObject)
{
if(httpObject instanceof DefaultHttpRequest)
{
DefaultHttpRequest httpRequest = (DefaultHttpRequest)httpObject;
logger.info(httpRequest.getUri());
logger.info(httpRequest.toString());
// How to access the POST Body data?
HttpPostRequestDecoder d = new HttpPostRequestDecoder(httpRequest);
d.getBodyHttpDatas(); //NotEnoughDataDecoderException
}
return null;
}
ロガーはこれを報告します。IMO はこれら 2 つのヘッダーのみがここで関連しています。それは POST リクエストであり、コンテンツがあります...
POST http://www.... HTTP/1.1
Content-Length: 522
Netty APIのドキュメントを見るHttpPostRequestDecoder
と、有望なようですが、NotEnoughDataDecoderException
. Netty JavaDoc ではこう書いてありますが、データ提供の仕方がわからないのですが?
この getMethod は、本文からすべての HttpDatas のリストを返します。チャンクの場合、すべてのチャンクが offer() getMethod を使用して提供されている必要があります。そうでない場合は、NotEnoughDataDecoderException が発生します。
実際、これがプロキシで POST データを取得するための正しいアプローチであるかどうかもわかりません。