Closed Mathu1998 closed 4 years ago
Ich vermute, dass ihr ein API Gateway verwendet und dieses falsch konfiguriert ist. Bitte stellt die Ausgabe einer Anfrage mit HTTPie (oder einem vergleichbaren Tool) hier zur Verfügung. Im unteren Beispiel ist die Adresse des Webservice der Beispiellösung (localhost:50123
) durch die Adresse eures Webservice zu ersetzen.
http localhost:50123 round=1 outcome='pending'
HTTPie-Ausgabe:
HTTP/1.0 200 OK
Content-Length: 20
Content-Type: application/json
Date: Fri, 22 Nov 2019 15:48:31 GMT
Server: WSGIServer/0.2 CPython/3.8.0
{
"type": "endRound"
}
Siehe auch https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-getting-started-with-rest-apis.html.
Unsere Ausgabe sieht wie folgt aus. Möglicherweise ist es noch wichtig anzumerken, dass wir die Antwort in AWS durch einen, in Java geschriebenen, requestHandler erzeugen. Wir haben aus Testgründen zwei Schnittstellen bereitgestellt, die jeweils mit einem String bzw. JSON-Objekt antworten.
Ausgabe als String:
Ausgabe als JSON:
Tatsächlich ist "{\"type\": \"endRound\"}"
gültiges JSON, bildet aber den String {"type": "endRound"}
ab. Das Kommandozeilenwerkzeug erwartet ein Objekt in JSON. Vielleicht hilft https://docs.aws.amazon.com/lambda/latest/dg/java-handler-io-type-pojo.html.
Ich wollte mit meinem etwas kryptischen Beitrag sagen, dass euer zweiter Webservice auch einen String in JSON zurückgibt :o)
Vielen Dank für die Hilfe, mittlerweile haben wir es geschafft :)
Wenn wir mit der Exe (Kommandozeilenwerkzeug) unsere, in AWS erzeugte, Schnittstelle anfragen, lässt sich in der Logdatei festellen, dass bei der ersten Antwort eine "normale" erste Runde an die Schnittstelle übergeben wird. Die Exe registriert/akzeptiert unsere Antwort ("{\"type\": \"endRound\"}") jedoch nicht und gibt uns erneut eine "erste Runde Antwort", diesmal jedoch mit einem error (failed to decode action). Liegt das daran, dass unsere Schnittstelle den falschen Datentypen zurückgibt bzw. welchen Datentyp erwartet die Exe?
Erste Antwort:
Zweite Antwort mit Fehler: