Ich versuche, den Körper einer http-Anfrage zu bekommen, aber es scheint, als ob es nicht so einfach ist, wie es klingen mag, es sei denn, natürlich fehlt mir etwas.Akka HTTP mit Java - get String von RequestEntity
Ich habe eine Instanz der HttpRequest
(von akka.http.javadsl.model
) und davon kann ich die RequestEntity
bekommen, aber ich kann nicht herausfinden, wie man die Zeichenfolge aus der Entität extrahieren.
Ich möchte das synchron tun, nur eine einfache Operation, die Zeichenfolge aus dort zu bekommen.
ich zwei verschiedene Wege versucht:
(1)
Source<ByteString, Object> source = RequestEntity.getDataBytes();
Ich bin nicht sicher, was ich mit dem source
tun soll, hat es eine Menge von Methoden, und es ist unklar, wie man diese benutzt und wenn einer von ihnen mir tatsächlich helfen kann.
(2)
Unmarshaller<HttpEntity, String> unmarshaller = Unmarshaller.entityToString();
CompletionStage<String> result = unmarshaller.unmarshall(entity, ExecutionContext, Materializer);
unmarshaller.unmarshall
Aufruf erfordert nicht nur eine Instanz von RequestEntity
sondern auch ein ExecutionContext
und ein Materializer
, die ich auch nicht an dem Teil des unmarshalling haben, gibt es eine CompletionStage<String>
, welches komplett redundant, wie ich möchte, dass es synchronisiert wird.
Die Dokumentation und Beispiele für Java nicht viel helfen, da sie sehr kurz sind und kurz, wenn sie überhaupt existieren, zum Beispiel in der Marshalling & Unmarshalling section:
Verwenden Sie die vordefinierten Unmarshaller.entityToString, Unmarshaller. entityToByteString, Unmarshaller.entityToByteArray, Unmarshaller.entityToCharArray auf diese Grundtypen
zu konvertieren Wie Sie sehen können, ist dies nicht sehr informativ.
Irgendwelche Ideen?
Ich wundere mich, wenn Sie kein Glück mit dieser Aufgabe haben? – fnt
@fnt Nein, ich habe beschlossen, 'Akka' nicht zu verwenden, da die Dokumentation und die Unterstützung sehr schlecht sind (zumindest für Java), es war einfach zu frustrierend. –