2017-09-28 1 views
0

Ich versuche, json Daten von der Kommandozeile mit curl zu einem PHP-Skript POST. Aber ich kann nicht herausfinden, wie das geschrieben json auf dem Server-Standort zu erhalten (php)cmd curl json zu PHP-Skript

Dies ist, was ich versucht habe, so weit:

Kommandozeile:

curl -H "Content-Type: application/json" -X POST -i -d '{"token":"xyz"}' http://localhost/api/users.php 

users.php

//Receive the RAW post data. 
$content = file_get_contents("php://input"); 
echo $content; 

// try to decode json 
$decoded = json_decode($content); 

if($decoded){ 
    echo "success"; 
    echo $decoded['token']; 
} 
else{ 
    echo "failed"; 
} 

Das Ergebnis, das ich erhalte, ist:

'{token:xyz}' 
failed 

Ich versuchte auch, wie der "in der Locke Anruf zu entkommen:

curl -H "Content-Type: application/json" -X POST -i -d '{\"token\":\"xyz\"}' http://localhost/api/users.php 

aber dann bekomme ich fast das gleiche Ergebnis:

'{"token":"xyz"}' 
failed 

So ist mein Problem, dass die PHP-Skript zu konvertieren schlägt fehl die empfangenen JSON-Daten.

Was mache ich falsch?

EDIT (Gelöst):

Aufruf cmd curl Befehl mit doppelten Anführungszeichen und Escape Zitate dazwischen:

curl -H "Content-Type: application/json" -X POST -i -d "{\"token\":\"xyz\"}" http://localhost/api/users.php 

Antwort

1

Scheint ok, aber nach Ihrem Beispiel zu testen scheint es nur zu arbeiten, wenn Ich habe doppelte Anführungszeichen um die Postdaten gelegt. Versuch es.

+0

perfekt danke! mit doppelten Qoutes herum und entkomme den Zitaten zwischendurch gearbeitet :-) probiert Stunden damit das Laufen ... – Biba