{“errorMessages”:[“意外字符('''(代码39)):预期有效值

时间:2015-07-19 17:11:06

标签: json windows rest curl jira

我在here找到了“使用POST查询”。

并试图从命令中使用curl命令。通过引用this来安装curl。

这是我的CURL字符串:

curl -D- -u admin:password -X POST -H "Content-Type: application/json" --data 
'{"jql":"project = CI","startAt":0,"maxResults":50,"fields":["summary","status","assignee"]}' 
"https://myclientname.atlassian.net/rest/api/2/search"

这就是我正在做的并且收到错误:

{"errorMessages":["Unexpected character (''' (code 39)): expected a valid value
(number, String, array, object, 'true', 'false' or 'null')\n
at [Source: org.apache.catalina.connector.CoyoteInputStream@1626cb2; line: 1, column: 2]"]}

在Windows中制作这个卷曲字符串有什么问题吗?请指教?我该如何纠正这个并获取JSON对象?请注意,userID,密码和客户端名称是正确的。感谢。

4 个答案:

答案 0 :(得分:12)

似乎是一个Windows问题。不要使用'(单引号)字符。

相反,使用"(双引号)字符来包含字符串。然后,如果你有内部引号,使用"""(3x双引号)来逃避它们。

示例:"{ """name""":"""Frodo""", """age""":123 }"

答案 1 :(得分:1)

我尝试了你在问题中指出的cURL,但没有运气。此外,cURL附带Git也不起作用。但是,我用CygWin安装的那个可以工作。同样的命令也在Ubuntu中运行。这基本上表明你的命令本身就没问题。

如果您使用的是Windows,我建议您使用名为Fiddler的工具。它可以执行您可能需要的几乎所有HTTP请求。祝你好运!

<强>更新 在这里,我添加了使用Fiddler发出HTTP POST请求的步骤。

1)启动Fiddler后,您将看到如图1所示的GUI。右上方的面板是您应该输入JIRA网站,请求类型和您要发布的内容等工作人员的位置。具体而言,在&#34;作曲家&#34;选项卡,您需要选择&#34; POST&#34;作为您的请求类型,并将JIRA的URL放在那里,保持选择HTTP / 1.1。您应该将请求标头放在URL栏下。 现在,你需要注意。至少,您应该在HTTP标头中输入两个内容:内容类型,即&#34; application / json&#34;和授权标头。身份验证是Base64字符串,您可以使用&#34; admin:password&#34;获取Base64字符串here。如果您想了解有关基本身份验证方法的更多信息,请参阅Jira的网站here。 GUI的右下方面板是您应该放置帖子内容的地方。 enter image description here

2)当你准备好这些员工时,你可以点击&#34;执行&#34; GUI右上角的按钮。执行结果将显示在左侧面板中。如图2所示,如果你得到状态为200的结果,恭喜你,你得到了它。如果您获得其他类型的结果,请在此处输入错误代码或发表评论。 enter image description here

3)双击结果,返回的JSON内容将显示在右下方面板中,如图3所示。您可以尝试使用不同的选项卡查看返回的人员。例如,如果您转到&#34; TextView&#34;,您将获得返回的JSON作为纯字符串。 enter image description here

如果您有任何其他问题,请发表评论。

答案 2 :(得分:0)

请验证是否有任何值用单引号引起来。

例如

kv

答案 3 :(得分:0)

试试这个。它应该可以工作。

curl -D- -u admin:password -X POST -H "Content-Type: application/json" --data 
\\"{"jql":"project = CI","startAt":0,"maxResults":50,"fields":["summary","status","assignee"]}\\"
"https://myclientname.atlassian.net/rest/api/2/search"

不要忘记在 json 前后使用斜杠(\*{}\*} 前后