无法使用cURL执行GraphQL变异
我已经在微文件容器(WildFly)中部署了一个变种,并且能够在GraphQL UI中执行它:无法使用cURL执行GraphQL变异,graphql,graphql-java,Graphql,Graphql Java,我已经在微文件容器(WildFly)中部署了一个变种,并且能够在GraphQL UI中执行它: mutation Add { createOrder(order: { id: 1, type: "car" model: "Ferrari" price: 500 } ) { type model price } } 但是,当我尝试使用cURL执行相同的突变时:
mutation Add {
createOrder(order: {
id: 1,
type: "car"
model: "Ferrari"
price: 500
}
)
{
type
model
price
}
}
但是,当我尝试使用cURL执行相同的突变时:
curl \
-X POST \
-H "Content-Type: application/json" \
--data '{ "query": "mutation Add {
createOrder(order: {
id: 1,
type: \"car\"
model: \"Ferrari\"
price: 500
}
)
{
type
model
price
}
}
" }' http://localhost:8080/demo/graphql
但是,它在以下方面失败:
javax.json.stream.JsonParsingException: Unexpected char 10 at (line no=1, column no=27, offset=26)
我还没有发现很多使用cURL这样的命令行工具运行变种的例子,也不知道错误在哪里。有什么帮助吗?
感谢您通过curl发送json数据,json规范不允许换行。它们需要替换为“\n”字符
curl \
-X POST \
-H "Content-Type: application/json" \
--data '{ "query": "mutation Add { createOrder(order: {id: 1, type: \"car\", model: \"Ferrari\", price: 500}){type\n model\n price\n}}" }' http://localhost:8080/demo/graphql
关于其他建议,请参见此问题:这里我有一个使用curl、换行引号转义和缩进的工作变体。它看起来确实不太好看,但比oneliner更易于维护: 我已经重新格式化了curl调用,现在应该可以工作了。请注意,输入和输出参数为您的变体精确缩进。您只需担心在每行末尾添加反斜杠,并转义“query”字符串中的反斜杠和引号 哦,别忘了在每个输入参数后加逗号。我想你最初的要求中没有这些
curl \
-X POST \
-H "Content-Type: application/json" \
--data \
"{ \
\"query\": \"mutation Add { \
createOrder(order: { \
id: 1, \
type: \\\"car\\\", \
model: \\\"Ferrari\\\", \
price: 500 \
}){ \
type \
model \
price \
} \
} \
} \
" http://localhost:8080/demo/graphql
它能像吃你的反睫毛一样简单吗?尝试记录到达服务器的确切负载。