【问题标题】:Http message content as a streamHttp 消息内容作为流
【发布时间】:2012-03-22 09:43:48
【问题描述】:

我正在使用 Netty 开发一个简单的 HTTP 侦听器,并希望将 HTTP 内容作为流获取。是否有由 Netty 实现的InputStream 提供此功能?

谢谢。

【问题讨论】:

  • “HTTP 侦听器”是什么? java.net.HttpURLConnection 一个 getInputStream() 方法,如果你指的是这个方法,但显然不是。
  • 其实我正在用Netty框架开发Http服务器。在那里我们得到了块的缓冲区。我想从这些块中创建一个输入流。我想知道天气网提供了一个标准的输入流来做到这一点。如果问题不清楚,很抱歉造成混乱。

标签: java netty httplistener


【解决方案1】:

一旦您收到整个 HttpMessage,就可以将 ChannelBufferInputStream 包裹在您可以通过 HttpMessage.getContent() 获得的 ChannelBuffer 周围。请注意,这会将整个 http 消息保存在内存中,因此可能需要一些内存。所以这里要小心..

您可能还需要在 ChannelPipeline 中放置 HttpChunkAggregator,这样您就不需要自己处理 HttpChunk。

见:

http://netty.io/docs/stable/api/org/jboss/netty/handler/codec/http/HttpChunkAggregator.html

【讨论】:

  • 感谢诺曼,但这不是很有效的内存。是否可以在通过 Inputstream 动态使用它们的同时逐步读取 HttpContent 对象?
猜你喜欢
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
  • 2011-07-28
相关资源
最近更新 更多