Ich kann immer noch nicht verstehen, wie der Inhalt einer AWS-Antwort gelesen wird, während ich den Elastic Search Service unterzeichne, der die Anforderungen signiert. Es scheint, als ob der Stream irgendwo verbraucht wird. Der einzige Weg, wie ich zum Beispiel den Inhalt der Antwort als String ausgeben kann, ist in einem ResponseHandler. Ich verwende Amazon AWS Java SDK 1.11.170.Vermeiden Sie es, den geschlossenen Stream zu lesen, der AWS verarbeitet Antwort
AmazonHttpClient client = new AmazonHttpClient(new ClientConfiguration());
Response<Void> response = client
.requestExecutionBuilder()
.request(request)
//.errorResponseHandler(errorHandler)
.executionContext(context)
//.execute(responseHandler)
.execute()
;
System.out.println("response = " + convertStreamToString(response.getHttpResponse().getContent()));
Dieser Code setzt sich und sagt:
java.io.IOException: Attempted read from closed stream.
Gibt es eine Möglichkeit, den Strom zu öffnen, nachdem der Anforderungsausführungs und außerhalb der Antworthandler zu halten?
Was AWS-Service werden Sie mit ? IMO verwenden Sie eine sehr Low-Level-Bibliothek und sollten lieber das Service-spezifische SDK verwenden, das AWS bereitstellt. –
Aufruf des Elastic Search Service, der leider keinen Java Client hat, also verwende ich grundsätzlich einen einfachen AmazonHttpClient. Jedenfalls habe ich diese Details zu meiner Frage hinzugefügt, danke! – koopa