2016-03-23 4 views
0

Auf der MongoLabs Dokumentation ein Dokument der folgende jQuery-Code in dem Beispiel einzufügen gegeben: http://docs.mlab.com/data-api/So rufen Sie die MongoLabs (MongoDB) RESTFULL APIS zum Hinzufügen von Dokumenten in PHP auf?

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

muss ich für mein Android-App, die Restfull API Endpunkt über PHP rufen ..

Wie mache ich eine POST-Anfrage in PHP, um die MongoLABs Daten APIS aufzurufen?

Wie konvertiert man den obigen jquery-Code in PHP-Code?

Ich habe den folgenden Code ausprobiert, aber kein Glück. Kann jemand den Fehler im folgenden Code erzählen oder sagen, wie man es mit PHP macht?

<?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; 
    ?> 
+0

Gibt es einen besonderen Grund, warum Sie anstelle des nativen MongoDB PHP-Treibers die mLab-REST-API verwenden? https://docs.mongodb.org/ecosystem/drivers/php/ & http://blog.mlab.com/2014/05/mongodb-driver-tips-tricks-php/ – pneumee

+0

Ja .. Wir verwenden ein kostenloses Hosting-Server .. Und der Shell-Zugriff ist nicht im freien Hosting zur Verfügung gestellt .. SO wie verwende ich die DATA API stattdessen in PHP? – Sharvil

Antwort

0

Haben Sie den Fehler: Wenn jemand das gleiche Problem hat oder wollen die mLabs Daten api verwenden .. Verwenden Sie die folgenden Schritte aus:

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

Aber versuchen Sie mit den DATA apis als Schlüssel zu vermeiden ist verwundbar und jeder mit dem Schlüssel hat Zugriff auf Ihre gesamte Datenbank.