Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';当数据中有括号[]时,apache是否将cURL请求传递给php?_Php_Json_Curl_Zend Framework - Fatal编程技术网

为什么赢了';当数据中有括号[]时,apache是否将cURL请求传递给php?

为什么赢了';当数据中有括号[]时,apache是否将cURL请求传递给php?,php,json,curl,zend-framework,Php,Json,Curl,Zend Framework,我试图通过从curl发布来测试JSON RPC实现。json roc规范要求参数是一个数组,使用括号。下面的帖子永远不会涉及php。看来阿帕奇正在抓住它 curl <url> -i -X POST -H "content-type: application/json" --data '{"method" : "validateSubdomain", "params" : ["test"

我试图通过从curl发布来测试JSON RPC实现。json roc规范要求参数是一个数组,使用括号。下面的帖子永远不会涉及php。看来阿帕奇正在抓住它

curl <url> -i -X POST -H "content-type: application/json" --data '{"method" : "validateSubdomain", "params" : ["test"]}'
curl-i-xpost-H“内容类型:应用程序/json”--数据“{”方法“:“validateSubdomain”,“params:[“test”]}”
我得到以下回应:

HTTP/1.1 204无内容

日期:2011年12月7日星期三格林威治时间21:21:42

服务器:Apache/2.2.15(Unix)PHP/5.3.8-ZS5.5.0 mod_ssl/2.2.15 OpenSSL/0.9.8o

X-Powered-By:PHP/5.3.8-ZS5.5.0 ZendServer/5.0

设置Cookie:ZDEDebuggerPresent=php、phtml、php3;路径=/

内容长度:80

内容类型:text/html

如果我去掉括号,我的php应用程序就会出错,这意味着它正在传递它。只有当我把这些括号放在那里,我才能得到204的回应


我正在运行ZendServer/apache。有什么想法吗?谢谢。

如果您是从Windows cmd运行,则呼叫应如下所示

curl -X POST --data "{\"method\":\"makePayment\",\"params\":{\"recipient\":\"Penny Adams\",\"amount\":175.05},\"id\":\"0001\",\"jsonrpc\":\"2.0\"}" <url>
curl-X POST--data“{\”method\”:“makePayment\”,“params\”:{\“recipient\”:“Penny Adams\”,“amount\”:175.05},\“id\”:“0001\”,“jsonrpc\”:“2.0\”
Jsons参数在命名对中工作,Zend还需要所有info方法、id和json版本


我注意到的是,在win cmd中,您必须转义--data“”中的所有“内容”,否则它会被分块读取更新:我刚刚发现它是“params”键与数组括号的组合。如果我执行类似“parameters”:[“data”]的操作,那么就可以了。JSON RPC需要“params”“不过,这听起来像是一个处理逻辑问题。显示您的代码。(而且Apaches
mod_security
不太可能过滤这对特定的值,并且无论如何都会出现另一个错误。)我在index.php引导文件的一开始就尝试了回显任何内容,但它甚至没有实现。显然,apache没有正确地引导请求,只是使用了“params”和括号组合。我没有找到问题发生的原因,但JSON RPC规范也定义了要传递的id。如果我在之后传入一个id,那么它工作正常。不知道为什么,如果你有任何意见,我还是很想听听;这当然不是一个普遍的问题。您应该使用另一台服务器来测试它,例如
php-S
等等。