Я ищу асинхронную библиотеку разбора/воспроизведения HTTP, которую можно подключить к потоку байтов (т. Е. Не зависит от прямого доступа к сокету и не создает/не ожидает фактического сетевые соединения).Библиотека парсера/рендеринга HTTP для Java/Scala
В принципе, данный поток байтов я хочу иметь возможность анализировать HTTP-запрос от него, потенциально манипулировать чем-либо и преобразовывать его в байтовую строку. И для запросов, и для ответов. Идеально подходит для строгих и упорядоченных запросов.
Главный манипулятор Http proxy, который работает на потоках ввода, потоках java, реактивных потоках или чем-то подобном (клиентский сервер &).
что-то вроде этого:
stream of bytes <-> HttpLib <-> customCode <-> HttpLib <-> stream of bytes
до сих пор я смотрел на
- Akka Http: близко к тому, что мне нужно, но поведение ошибка закодирована
- Appache Http компоненты: кажется, ориентированные на использование с гнездами, доступ к нижним уровням возможен, но он не похож на предполагаемое использование
- другие спрей, netty не уверен, что они выработают какой-либо опыт се?
Любые предложения приветствуются!
Update
Что касается Akka HTTP: Я имею в виду поведение onUpstreamFailure, который обрабатывается непосредственно в serverLayer план. Я думаю, это самый эффективный/удобный дефолт, но как бы этапы потоков после того, как серверный слой реагирует на такие ошибки (опционально), распространяя эту ошибку, будет более гибким.
-> Bytes -> serverLayer -> customCode
|
<- (error response)
Akka HTTP также является первым, что придет к моему ум (http://doc.akka.io/docs/akka/2.4.7/scala/http/low-level-server-side-api.html#Request-Response_Cycle). Каким образом обработка ошибок слишком ограничительна для вашего сценария использования? – devkat
Можете ли вы указать, что вы подразумеваете под ", но поведение ошибки жестко закодировано"? – tkachuko