0

当我尝试使用 curl 命令通过 REST 传递密码查询时出现以下错误。我的问题是特定于 curl 命令的愚蠢问题,我无法弄清楚。

在这个查询(我的查询的非常简单的版本):

curl -X POST http://myhostname02:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: application/json" --data-binary '{ "query": "start ca=node:ca('NUM_CA:(\"000999\", \"000177\")') return ca.NME_CA", "params": {} }'

错误:(控制台转储)

[user@myhostname02 neo4j]$ curl -X POST http://myhostname02:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: application/json" --data-binary '{ "query": "start ca=node:ca('NUM_FA:(\"000999\", \"000177\")') return ca.NME_CA", "params": {} }'
bash: syntax error near unexpected token `('

bash:意外标记'('附近的语法错误

但是,同样的 JSON 我可以成功地从 http web 控制台和密码运行。我做了很多查询,但是只有一个起点,我不确定这个问题出了什么问题。以下成功执行(单起点):

curl -X POST http://myhostname02:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: applicatio/json" --data-binary '{ "query": "start ca=node:ca(NUM_CA=\"000999\") return ca.NME_CA", "params": {} }'

请帮助我理解这一点!

已编辑 - 添加控制台转储。

4

1 回答 1

2

您的查询没有结束引号。

更新(现在结束引号是固定的):它仍然与引号有关。您在 lucene 查询的中间和整个消息周围有单引号。如果你把它放在一个文件中,它就可以工作。尝试这个:

 $ cat test.json
 { "query": "start ca=node:ca('NUM_CA:(\"000999\", \"000177\")') return ca.NME_CA", "params": {} }
 $ curl -X POST -d @test.json http://localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: application/json"
于 2013-05-22T19:39:37.540 回答