用于Java / Scala的HTTP解析器/渲染器库

时间:2016-06-24 11:15:12

标签: java scala http parsing renderer

我正在搜索异步HTTP解析/呈现库,它可以连接到字节流(即不依赖于直接套接字访问,也不会创建/期望实际的网络连接)。

基本上给定一个字节流我希望能够解析来自它的HTTP请求,可能会操纵某些东西并将其渲染为字节字符串。请求和响应都是。理想情况下,对于严格和分块的请求。

原则上是一个操作Http代理,它适用于输入流,java流,反应流或类似的东西(客户端和服务器)。

类似的东西:

stream of bytes <-> HttpLib <-> customCode <-> HttpLib <-> stream of bytes

到目前为止我看了

  • Akka Http:接近我需要但错误行为是硬编码的
  • Appache Http Components:似乎是针对套接字的使用,可以访问较低级别,但感觉不是有意使用
  • 其他人喷,netty不确定他们是否会有任何经验?

欢迎任何建议!

更新

关于Akka HTTP:我指的是onUpstreamFailure行为,它直接在serverLayer蓝图中处理。我猜这是最有效/最方便的默认值,但是在serverLayer对这些错误做出反应之后,如何对流进行处理(可选)传播错误会更灵活。

-> Bytes -> serverLayer -> customCode
                 |
  <- (error response)

1 个答案:

答案 0 :(得分:0)

如果有人偶然发现问题

  • Akka HTTP一般来说都是一个很好的选择,对我们来说不是很好(请参阅问题)
  • Netty提供EmbeddedChannels,允许执行HTTP Parsers / Renderers / Decoders而不绑定套接字。我认为这主要用于测试但不在.test包中,也可用于实现更高级别的编解码器(Netty 3.x文档)