gpt4 book ai didi

curl - 使用 CURL 的 JSON 响应无效

转载 作者:行者123 更新时间:2023-12-04 22:47:54 26 4
gpt4 key购买 nike

我的 Play Framework 2.1.1 (Java) 有问题,告诉我我正在发送无效的 JSON。 play 框架 2.x 和 2.1.0 存在类似/可能相同的问题,但应该在 play 框架 2.1.1 afaik 中解决:见 Invalid JSON in Play Framework 2.1

这就是我在代码中所做的,我尝试将其缩短一点:

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 导致这个......

最佳答案

您的代码没有任何问题。您是否使用 Windows 命令行 ( CMD.exe ) 运行 curl ?如果您正在使用 CMD.exe运行 curl ,您必须修复要传递的 JSON 格式数据。我认为在 Windows 中,使用 quote 与 UNIX 机器有点不同。

最简单的修复方法是 避免使用单引号 并使用双引号开始和结束 JSON 数据,使用 双引号在 JSON 数据中 逃脱 (由 \ 字符),可能有点累,但它应该有效:

curl -v -H "Content-Type: application/json" -X POST -d "{\"email\":\"test@test.de\",\"password\":\"test\"}" http://localhost:9000/mobile/login

或者,您可以使用 cygwin或其他类似 UNIX 的 Windows 命令行作为替代命令行,因为它的行为可能与 UNIX 机器一样。

希望对你 friend 有用。 :)

关于curl - 使用 CURL 的 JSON 响应无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com