В документации MongoLabs для вставки документа приведен следующий код jQuery:
http://docs.mlab.com/data-api/
$.ajax( { url: "https://api.mlab.com/api/1/databases/my-db/collections/my-coll?apiKey=myAPIKey",
data: JSON.stringify( { "x" : 1 } ),
type: "POST",
contentType: "application/json" } );
Я должен вызвать конечную точку API RESTFULL через PHP для моего приложения для Android ..
Как сделать POST-запрос в php для вызова APIS данных MongoLABs?
Как преобразовать вышеуказанный код JQuery в PHP-код?
Я попробовал следующий код, но не повезло. Может кто-то сказать об ошибке в следующем коде или рассказать, как это сделать с помощью php?
<?php
$x=array(
'x' => 2
);
$data=json_encode($x);
echo $data;
$postdata = $data;$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://api.mlab.com/api/1/databases/mydb/collections/mycoll?apiKey=xxxxxxxxxxxxxxxxxxxxx', false, $context);
echo $result;
?>
Получил ошибку:
Если у кого-то есть такая же проблема или вы хотите использовать API данных mLabs. Используйте следующее:
$x=array(
'x' => '2'
);
$data=json_encode($x);
//echo $data;
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/json',
'content' => $data
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://api.mlab.com/api/1/databases/mydb/collections/mycoll?apiKey=xxxxxxxxxxx', false, $context);
echo $result;
Но старайтесь избегать использования API DATA, так как ключ уязвим, и любой, у кого есть ключ, будет иметь доступ ко всей вашей БД.
Других решений пока нет …