我使用以下代码使用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\"}}"}
我在做什么错了?
答案 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);