gpt4 book ai didi

http - 如何在 Netty 中读取 HTTP POST 中的消息正文(版本 >= 4.x)

转载 作者:可可西里 更新时间:2023-11-01 16:24:27 24 4
gpt4 key购买 nike

在我的服务器处理程序中;- channelRead() 总是将 msg 作为 HTTPRequest 获取,我找不到任何地方获取 POST 请求负载。

  • 然后我尝试在我的处理程序中执行以下操作以检查它是否有效。解码器有 0 个元素。

HttpPostRequestDecoder 解码器 = new HttpPostRequestDecoder(new DefaultHttpDataFactory(false), request);

在我的服务器管道中,我只有 HttpServerCodec 和一个自定义处理程序。

最佳答案

很可能您的 HTTP 请求被分块了。您应该尝试将 io.netty.handler.codec.http.HttpObjectAggregator 添加到您的管道,就在编解码器之后。它将向您的处理程序提供 FullHttpRequest。

 ChannelPipeline p = ...;
...
p.addLast("encoder", new HttpResponseEncoder());
p.addLast("decoder", new HttpRequestDecoder());
p.addLast("aggregator", new HttpObjectAggregator(1048576));
...
p.addLast("handler", new MyServerHandler());

或者,您可以检查 this example其中 HttpRequestHttpContent 是分开处理的。

关于http - 如何在 Netty 中读取 HTTP POST 中的消息正文(版本 >= 4.x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869272/

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