如何调用MongoLabs(mongoDB)RESTFULL APIS在php中添加文档


How to call the MongoLabs (mongoDB) RESTFULL APIS for adding documents in php?

在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" } );

我必须通过PHP为我的android应用程序调用RESTFULL API端点。。

如何在php中发出POST请求来调用MongoLABs数据APIS?

如何将上面的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;
    ?>

出现错误:如果有人有同样的问题或想使用mLabs数据api。。使用以下内容:

    $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;

但是尽量避免使用DATAapi,因为密钥很容易受到攻击,任何拥有密钥的人都可以访问整个数据库。。