我正在尝试在后端使用 Netty 构建 REST 服务。我需要能够将原始 JSON 发布到任何键/值参数之外的服务。Content-type=applicaiton/json 不形成多部分。
我能够让服务的初始部分接收请求,但是当我将 MessageEvent 内容转换为 HTTPRequest 时,它不再有任何与之关联的姿势数据。这让我无法取回 JSON 数据。
为了访问发布的 JSON,我是否需要使用不同的流程从 MessageEvent 中提取数据?
这是有问题的片段。
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
System.out.println("The message was received");
HttpRequest request = (HttpRequest) e.getMessage();
if (request.getMethod() != POST) {
sendError(ctx, METHOD_NOT_ALLOWED);
return;
}
// Validate that we have the correct URI and if so, then parse the incoming data.
final String path = sanitizeUri(request.getUri());
decoder = new HttpPostRequestDecoder(request);
System.out.println("We have the decoder for the request");
List<InterfaceHttpData> datas = decoder.getBodyHttpDatas();
for (InterfaceHttpData data : datas){
System.out.println(data.toString());
}
我错过了什么导致这种情况?我需要使用 ChunkedWrite 部分吗?我是 Netty 的菜鸟,所以如果这是基本的,请原谅我。我发现了很多其他关于从 Netty 内部将原始 JSON 发布到其他 URL 的问题,但没有关于接收它的问题。