J'essaye de POST json données à partir de la ligne de commande avec curl à un script PHP. Mais je ne peux pas comprendre comment recevoir le JSON affiché sur le site du serveur (php)cmd curl json au script PHP
C'est ce que je l'ai essayé jusqu'à présent:
commandline:
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";
}
Le résultat que je reçois est:
'{token:xyz}'
failed
J'ai aussi essayé d'échapper à la "dans l'appel boucle comme:
curl -H "Content-Type: application/json" -X POST -i -d '{\"token\":\"xyz\"}' http://localhost/api/users.php
mais je reçois presque le même résultat:
'{"token":"xyz"}'
failed
Donc, mon problème est que le script php ne parvient pas à convertir les données json reçues.
Qu'est-ce que je fais mal?
EDIT (Résolu):
commande curl Appel cmd avec double guillemets et citations entre les deux:
curl -H "Content-Type: application/json" -X POST -i -d "{\"token\":\"xyz\"}" http://localhost/api/users.php
parfait merci! avec double qoutes autour et échapper les citations entre travaillé :-) essayé heures obtenir ce fonctionnement ... – Biba