gpt4 book ai didi

json - Netty HTTPRequest 未捕获发布的 JSOn

转载 作者:行者123 更新时间:2023-12-04 05:34:46 25 4
gpt4 key购买 nike

我正在尝试在后端使用 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 的其他问题,但没有关于接收它的问题。

最佳答案

我只用过 HttpPostRequestDecoder阅读 application/x-www-form-urlencoded或 MIME 数据。

尝试按照 snoop 直接从请求中读取数据例如。

ChannelBuffer content = request.getContent();
if (content.readable()) {
String json = content.toString(CharsetUtil.UTF_8);
}

关于json - Netty HTTPRequest 未捕获发布的 JSOn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com