我有一个播放框架 2.1.1 (Java) 的问题,告诉我我正在发送无效的 JSON。播放框架 2.x 和 2.1.0 存在类似/可能相同的问题,但它应该在播放框架 2.1.1 afaik 中解决:请参阅Play Framework 2.1 中的无效 JSON
这就是我在代码中所做的,我试着让它更短一点:
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();
}
当我运行时:
curl -v -H "Content-Type: application/json" -X POST -d '{"email":"test@test.de","password":"test"}' http://localhost:9000/mobile/login
我得到以下回复:
< 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>
...
我已经清理了我的项目并重新运行了几次。运行play about时,我得到以下输出:
[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
我做错了什么吗?任何帮助将不胜感激,因为这是我的第一个 Play 2 项目!
更新:我忘了提到我还有一个 iOS 客户端,它使用 AFNetworking 自动构建 JSON,我也在那里得到一个无效的 JSON 响应。所以它似乎不是无效的 JSON 导致这个......