2

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 データを取得するための正しいアプローチであるかどうかもわかりません。

4

1 に答える 1