Php 通过cURL-POST发送数组

Php 通过cURL-POST发送数组,php,rest,curl,slim,Php,Rest,Curl,Slim,您好,我正在测试一个用于移动应用的REST web服务的场景。在测试期间,我需要使用post方法向我的php程序发送一个数组。这是我通过卷曲控制台做的。除传递数组外,其余部分工作正常。请提出任何修改建议 下面是我在cURL控制台中传递的代码 C:\curlw32>curl -H "Content-Type: application/json" -X POST http://localhost/slim-login/api/submit -d "{\"specialtyCheckbox\":

您好,我正在测试一个用于移动应用的REST web服务的场景。在测试期间,我需要使用post方法向我的php程序发送一个数组。这是我通过卷曲控制台做的。除传递数组外,其余部分工作正常。请提出任何修改建议

下面是我在cURL控制台中传递的代码

C:\curlw32>curl -H "Content-Type: application/json" -X POST http://localhost/slim-login/api/submit -d "{\"specialtyCheckbox\":\"[1,2,3]\"}"
下面是捕捉它的php代码

$request = Slim::getInstance()->request();
$onsubmit_content = json_decode($request->getBody());
$spec=$onsubmit_content->specialtyCheckbox;
echo json_encode(count($spec));

此处显示的数组长度为1。

不要在数组周围使用引号(如果要发送json数组):


可以尝试通过PHP脚本传递数组吗(使用CURL)


如果要将数组传递到CURL调用,答案非常简单。将所有输入参数放入数组中,如-

$post = array('prgmCode'=>'3',
                'userStateCode'=>'TA',
                );
如果您需要在上面传递一个输入数组,您可以设置

`$chkBoxArr = array(1,2,3,4);
$post = array('prgmCode'=>'3',
                'userStateCode'=>'TA',
                'chkBoxArr'=>$chkBoxArr
                );`
可以使用函数http\u build\u query()从数组生成查询字符串

`$data = http_build_query($post);`
并将数据设置为卷曲

`curl_setopt($curlSession, CURLOPT_POSTFIELDS, $data);`
在服务器端检查请求。完成:)

请试试这个

 curl -d '{"previous_questions":"['hello', 'world', 'finally']"}' -H "Content-Type: application/json" -X POST http://localhost:5000/quizzes

事实上,这不是你不需要的,但你不能把它们放在那里;-)
“[…]”
不过是一个包含这些字符的文本。没错,但我不确定他期望的是什么,因为他说curl在cli上工作。谢谢mpm:)它工作了!!实际上,我是用引号将其作为字符串传递的,这就是为什么它的长度显示为1。请看这里:Sandy,我不需要通过脚本运行它,因为我只是在测试它的web服务,最终将由移动应用程序团队使用。控制台对我来说“不那么费力”!!
`curl_setopt($curlSession, CURLOPT_POSTFIELDS, $data);`
 curl -d '{"previous_questions":"['hello', 'world', 'finally']"}' -H "Content-Type: application/json" -X POST http://localhost:5000/quizzes