您好我正在为移动应用程序测试REST Web服务的场景。在测试期间,我需要使用post方法将数组发送到我的php程序。我通过cURL控制台做的。剩下的东西工作正常,除了传递一个数组。请提出任何修改建议。
以下代码我在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。
答案 0 :(得分:1)
不要在数组周围使用引号(如果要发送json数组):
"{\"specialtyCheckbox\":[1,2,3]}"
答案 1 :(得分:0)
您可以尝试通过PHP脚本(使用CURL)传递数组
$ch = curl_init ($url); // your URL to send array data
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); // Your array field
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec ($ch);
print_r($result);
答案 2 :(得分:0)
如果您想通过 CURL 调用传递数组,答案非常简单。将所有输入参数放在数组中,如 -
$post = array('prgmCode'=>'3',
'userStateCode'=>'TA',
);
如果你需要传递一个输入数组,你可以设置
`$chkBoxArr = array(1,2,3,4);
$post = array('prgmCode'=>'3',
'userStateCode'=>'TA',
'chkBoxArr'=>$chkBoxArr
);`
您可以使用函数http_build_query()从数组中创建查询字符串。
`$data = http_build_query($post);`
并将数据设置为卷曲
`curl_setopt($curlSession, CURLOPT_POSTFIELDS, $data);`
检查服务器端的请求。完成。 :):)
答案 3 :(得分:0)
请试试这个
curl -d '{"previous_questions":"['hello', 'world', 'finally']"}' -H "Content-Type: application/json" -X POST http://localhost:5000/quizzes