带有 Where 子句 PHP 的 Parse Server 的 GET api
Posted
技术标签:
【中文标题】带有 Where 子句 PHP 的 Parse Server 的 GET api【英文标题】:GET api for Parse Server with Where clause PHP 【发布时间】:2019-02-02 17:51:13 【问题描述】:我有以下代码使用 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】:在没有阅读文档的情况下,我敢打赌它应该是 url 编码的,而不是 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);
【讨论】:
以上是关于带有 Where 子句 PHP 的 Parse Server 的 GET api的主要内容,如果未能解决你的问题,请参考以下文章