rest — GET API для Parse Server с предложением Where, переполнение стека

У меня есть следующий код, чтобы сделать оператор GET для API REST сервера Parse с использованием PHP:

$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

Решение

не читая документацию, могу поспорить, что она должна быть в кодировке url, а не в кодировке json -OR-, что данные должны находиться в теле 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);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]