2016-06-24 11 views
0

私は、バイトストリームに接続できる非同期HTTP解析/レンダリングライブラリを探しています(つまり、ダイレクトソケットアクセスに依存せず、実際のネットワーク接続)。Java/ScalaのHTTPパーサー/レンダラーライブラリ

基本的にバイトストリームが与えられているので、HTTPリクエストを解析し、何かを操作してバイトストリングにレンダリングする必要があります。リクエストとレスポンスの両方理想的には、厳格でチャンクされた要求の場合。

原則として、入力ストリーム、Javaストリーム、リアクティブストリームなど(クライアント&サーバ)で動作する操作Httpプロキシです。このような

何か:

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

これまでのところ、私は

  • アッカのHttpを見て:私は必要なものに近いが、エラー動作は、ハード
  • AppacheのHttpコンポーネントのコード化されていますように思わソケットでの使用に適していますが、下位のレベルにはアクセスできますが、意図した使用のように感じることはありません
  • その他スプレー、元気?

どのようなご提案も歓迎です!

更新

アッカHTTPについて:私はserverLayerの青写真に直接処理されonUpstreamFailure行動を意味します。私はそれが最も効率的で便利なデフォルトだと思いますが、serverLayerがそのようなエラーに反応した後のストリームステージは、エラーを伝播することがより柔軟になる方法を示します。ケース誰かに

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

Akka HTTPは私にとって心(http://doc.akka.io/docs/akka/2.4.7/scala/http/low-level-server-side-api.html#Request-Response_Cycle)。どのような方法で、エラー処理があなたの使用シナリオにはあまりにも制限がありますか? – devkat

+0

「エラー動作はハードコードされていますか?」とはどういう意味ですか? – tkachuko

答えて

0

は質問

  • アッカHTTPが
  • (質問を参照)私たちのために素敵なネッティーができますEmbeddedChannelsを提供することを一般的なちょうどdoens't仕事に最適な選択肢となり全体につまずきますソケットにバインドせずにHTTPパーサー/レンダリング/デコードを実行する。私はこれが主にテストのために意図されているが、テストパッケージではないと思うし、高水準のコーデック(Netty 3.xのドキュメント)の実装にも使うことができると思う(Netty 3.xドキュメント)
関連する問題