我遵循了GitHub:LittleProxy所示的簡單示例,並在clientToProxyRequest(HttpObject httpObject)
方法中添加了以下內容。Java LittleProxy(在Netty之上):如何訪問POST Body數據?
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只有這兩個標頭在這裏有關。這是一個POST請求並沒有內容...
POST http://www.... HTTP/1.1
Content-Length: 522
展望Netty的API文檔HttpPostRequestDecoder
似乎是有前途的,但我得到一個NotEnoughDataDecoderException
。在Netty JavaDoc這是寫的,但我不知道如何提供數據?
這個getMethod返回一個來自正文的所有HttpDatas的列表。 如果分塊,所有塊必須使用offer()getMethod提供。如果不是,則會引發NotEnoughDataDecoderException。
事實上,我也不確定這是否是在代理中獲取POST數據的正確方法。