GET API for Parse Server with Where子句PHP

时间:2019-02-02 17:51:14

标签: php rest curl parse-server

我使用以下代码使用PHP对Parse服务器的REST API进行GET声明:

$query = json_encode(
array(
    'where' => array( 'userid' => "8728792347239" )
));
echo $query;
$ch = curl_init('https://*hidden*.herokuapp.com/parse/classes/computers?'.$query);
curl_setopt(
$ch, 
CURLOPT_HTTPHEADER,
array(
    'X-Parse-Application-Id: *hidden*',
    'X-Parse-REST-API-Key: *hidden*',
    'Content-Type: application/json'
)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
print_r($response);

但是我遇到以下错误:

{"code":102,"error":"Invalid parameter for query: {\"where\":{\"userid\":\"8728792347239\"}}"}

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

,而不必阅读文档,我打赌它应该是网址编码,不JSON编码 - 或 - 该数据被认为是在POST体,而不是URL的查询。

如果猜测#1是正确的,那么您的问题是您使用的是json_encode而不是http_build_query,例如

$query = http_build_query(
array(
    'where' => array( 'userid' => "8728792347239" )
));

如果猜测#2是正确的,那么你的问题是,你将数据添加到URL查询,而不是将其添加到请求主体,如:

$ch = curl_init('https://*hidden*.herokuapp.com/parse/classes/computers');
curl_setopt($ch,CURLOPT_POSTFIELDS,$query);