J'ai un problème avec le framework de jeu 2.1.1 (Java) qui me signale que j'envoie JSON invalide. Il y a eu un problème similaire/éventuel pour les frameworks de jeu 2.x et 2.1.0, mais il était supposé être résolu dans le framework de jeu 2.1.1 afaik: Voir Invalid JSON in Play Framework 2.1Réponse JSON non valide en utilisant CURL
C'est ce que je fais dans le code, je l'ai essayé de faire un peu plus court:
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import play.libs.Json;
import play.mvc.BodyParser;
@BodyParser.Of(BodyParser.Json.class)
public static Result login() {
JsonNode json = request().body().asJson();
}
Quand je lance:
curl -v -H "Content-Type: application/json" -X POST -d '{"email":"[email protected]","password":"test"}' http://localhost:9000/mobile/login
Je reçois la réponse suivante:
< HTTP/1.1 400 Bad Request
< Content-Type: text/html; charset=utf-8
< Content-Length: 1917
...
<p id="detail">
For request 'POST /mobile/login' [Invalid Json]
</p>
...
J'ai nettoyé mon projet et l'ai réexécuté plusieurs fois. Lors de l'exécution pièce sur je reçois la sortie suivante:
[info] Loading project definition from /path/to/project
[info] Set current project to FFPushAlarmPlay (in build file:/path/to)
[info] This is sbt 0.12.2
[info] The current project is {file:/path/to}...
[info] The current project is built against Scala 2.10.0
[info] Available Plugins: play.Project, sbt.PlayProject, com.typesafe.sbteclipse.plugin.EclipsePlugin, com.typesafe.sbtidea.SbtIdeaPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.9.2
que je fais quelque chose de terriblement mal? Toute aide serait grandement appréciée car c'est mon premier projet Play 2!
Mise à jour: J'ai oublié de mentionner que j'ai aussi un client iOS qui construit automatiquement le JSON en utilisant AFNetworking et j'obtiens également une réponse JSON invalide. Donc, il ne semble pas être invalide JSON causant cela ...
Merci pour la réponse! J'utilise OS X. J'ai juste essayé votre suggestion sur échapper le JSON, mais toujours obtenir "Invalid JSON" comme réponse. Cela m'aurait surpris car j'ai un client iOS qui reçoit la même réponse et utilise la librairie AFNetworking pour la requête JSON. J'ai oublié de le mentionner dans mon message original, désolé! – mactunes
Vous pouvez également installer Git qui inclut la commande Git Bash avec curl. – null