Я пытаюсь получить тело HTTP-запроса, но кажется, что это не так просто, как может показаться, если, конечно, я чего-то не хватает.Akka http using java - get String from RequestEntity
У меня есть экземпляр HttpRequest
(от akka.http.javadsl.model
) и от того, что я могу получить RequestEntity
, но я не могу понять, как извлечь строку из объекта.
Я хочу сделать это синхронно, просто простую операцию получения строки оттуда.
Я попробовал два разных пути:
(1)
Source<ByteString, Object> source = RequestEntity.getDataBytes();
Я не уверен, что я должен делать с source
, он имеет много методов, и неясно, как использовать их, и если кто-то из них действительно может мне помочь.
(2)
Unmarshaller<HttpEntity, String> unmarshaller = Unmarshaller.entityToString();
CompletionStage<String> result = unmarshaller.unmarshall(entity, ExecutionContext, Materializer);
Вызов unmarshaller.unmarshall
требует не только экземпляр RequestEntity
, но также ExecutionContext
и Materializer
, которые я не имею в части немаршалинг, также возвращает CompletionStage<String>
, который полностью избыточным, поскольку я хочу, чтобы это было выполнено синхронизированным.
документация и примеры для Java не помогут, поскольку они очень короткие и краткие, если они вообще существуют, например, в Marshalling & Unmarshalling section:
использовать предопределенные Unmarshaller.entityToString, Unmarshaller. entityToByteString, Unmarshaller.entityToByteArray, Unmarshaller.entityToCharArray для преобразования этих основных типов
Как вы можете видеть, это не очень информативно.
Любые идеи?
Я интересно, если вы не везли с этой задачей? – fnt
@fnt Нет, я решил не использовать 'Akka', поскольку документация и поддержка очень плохие (по крайней мере, для java), это было просто слишком неприятно. –