当前位置: 首页 > 知识库问答 >
问题:

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

谭梓
2023-03-14

在我的服务器处理程序中;-channelRead()总是以HTTPRequest的形式获取msg,在那里我找不到任何获取POST请求有效负载的地方。

    null

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

共有1个答案

齐冥夜
2023-03-14

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

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

或者,您可以检查此示例,其中httprequesthttpcontent分别处理。

 类似资料:
  • 问题内容: 我想在班级以外的特定位置阅读消息。我找不到在netty框架中调用的方法中读取期望值的方法。 例如: 如果不可能,如何将方法中得到的结果映射到在另一个类中进行的特定调用? 问题答案: Netty框架设计为异步驱动。使用这种类比,它可以以最少的线程使用量处理大量连接。如果您要创建一个使用netty框架将调用分派到远程位置的api,则应该对调用使用相同的类比。 而不是让api直接返回值,而是

  • 从这些注释中: Netty永远不会同时调用的方法,除非带有注释。这与处理程序方法的类型无关—入站、出站或生命周期事件处理程序方法。 我对此没有异议。但是,我的问题是,在管道的不同阶段,是否可能同时从同一通道读取/处理两条不同的消息。 例如,考虑下面的管道(<代码> ChannelInboundHandler < /代码> S): 我知道最多只有一个线程可以从调用方法,除非它是。但是,一个线程可以在

  • 如何在reactor netty服务器中读取请求正文?我想让请求主体确定响应的内容,但在示例代码中找不到这样的示例。 例外 block()/blockFirst()/blockLast()正在阻塞,这在线程reactor-http-nio-2中不受支持 调用者 卷曲http://127.0.0.1:45441/test1/test-d“12312321312”-i-H“内容类型:应用程序/json

  • 我是Netty的新手,需要以自定义方式处理消息。我有以下接口: 现在我从客户端收到一些数据,并希望对其进行处理。我正在实现

  • 问题内容: 从Python标准库的组件中获取异常消息的最佳方法是什么? 我注意到在某些情况下,您可以通过如下字段获取它: 但在某些情况下(例如在套接字错误的情况下),您必须执行以下操作: 我想知道是否有标准方法可以涵盖大多数情况? 问题答案: 如果查看内置错误的文档,则会看到大多数类将其第一个参数分配为属性。并非所有人都这样做。 值得注意的是,(与子类和)具有的第一自变量,第二的。没有…大致类似于