【发布时间】:2016-02-10 10:42:10
【问题描述】:
我尝试执行如下 CURL 语句,我得到了所需的响应:
curl -s -POST --header 'Content-Type: application/json' 'http://www.dummy.com/projectname/page_relevance' -d '{"query": "q_string", "results": [{"abstract": "abs_string", "title": "title_string"}, "mode": "value", "cache": true, "source": "value"}'
但是当我尝试将变量值传递给参数“查询”时,下面提到的 curl 语句不起作用并观察到一些错误语句作为响应:
curl -s -POST --header 'Content-Type: application/json' 'http://www.dummy.com/projectname/page_relevance' -d '{"query": "$query_string", "results": [{"abstract": "abs_string", "title": "title_string"}, "mode": "value", "cache": true, "source": "value"}'
错误声明:
未找到 [CFN #0005]
有效!
这是此服务器的默认网页。
网络服务器软件正在运行,但尚未添加任何内容。
但我确信我第二次用变量构造的 curl 请求类似于我最初执行的 curl 请求。这是使用 echo 测试的,它将 $query_string 替换为正确的值。
我还尝试了另一种方法,其中我没有对单个参数使用任何变量,而是尝试如下:
a='{"query": "query_value", "results": [{"abstract": "abs_string", "title": "title_string"}, "mode": "value", "cache": true, "source": "value"}'
curl -s -POST --header 'Content-Type: application/json' 'http://www.dummy.com/projectname/page_relevance' -d $a
我还尝试使用 ${a}、"$a"、'$a' 替换 a 的值
仍然出现同样的错误。
【问题讨论】:
-
去掉“-POST”部分作为开始,这是完全错误的,然后添加
--libcurl dump.txt并检查curl为你的命令发送了什么,它通常会给你很多线索
标签: json bash shell curl cfnetwork