我已经按照示例 http服务器使用 Netty 编写了一个小型 http服务器,现在我正在尝试使其适应我的需求(一个应该发送 json 的小应用程序)。我首先使用 jackson 将 POJO 手动编码为 json,然后使用 StringEncoder 获取 ChannelBuffer。现在我试图通过添加HttpContentEncoder提取将 POJO 编码为 json 的位来稍微概括它,我已经或多或少地实现了这一点。
我无法弄清楚的部分是如何在HttpResponse上设置内容。它需要一个 ChannelBuffer,但我如何将我的对象放入 ChannelBuffer?
编辑
假设我有一个带有如下代码的处理程序,并且有一个知道如何序列化 SomeSerializableObject 的 HttpContentEncoder。那么我如何将我的内容(SomeSerializableObject)发送到 HttpContentEncoder?这就是我要找的。
SomeSerializableObject obj = ...
// This won't work becuase the HttpMessage expects a ChannelBuffer
HttpRequest res = ...
res.setContent(obj);
Channel ch = ...
ch.write(res);
虽然我不确定这是否是 HttpContentEncoder 的目的,或者更确切地说是压缩之类的东西,但在对其进行了更多研究之后?