PHP décodage JSON POST
J'essaie de recevoir POST
des données sous forme de JSON. Je suis curling:
curl -v --header 'content-type:application/json' -X POST --data '{"content":"test content","friends":[\"38383\",\"38282\",\"38389\"],"newFriends":0,"expires":"5-20-2013","region":"35-28"}' http://testserver.com/wg/create.php?action=post
Sur le PHP côté mon code est:
$data = json_decode(file_get_contents('php://input'));
$content = $data->{'content'};
$friends = $data->{'friends'}; //JSON array of FB IDs
$newFriends = $data->{'newFriends'};
$expires = $data->{'expires'};
$region = $data->{'region'};
Mais même quand je print_r ( $data)
rien n'est retourné vers moi. Est-ce la bonne façon de traiter un POST
sans forme?
Pourquoi n'êtes-vous pas à l'aide de
quand j'essaie, il me donne l'erreur
Parce que
Debug plus en détail.
Il me déroute que c'était fermé. C'est un produit totalement générique de la question - comment analyser un HTTP POST-chaîne en JSON en PHP. De toute façon d'une manière qui fonctionne pour moi est: $inputContents = json_decode($HTTP_RAW_POST_DATA, true);
json_decode($_POST)
?quand j'essaie, il me donne l'erreur
json_decode() expects parameter 1 to be string, array given
Parce que
$_POST
est supposé être l'URL des données codées.Debug plus en détail.
var_dump
le contenu du POSTE avant de les décoder. Il semble juste comme invalid JSON pour moi.Il me déroute que c'était fermé. C'est un produit totalement générique de la question - comment analyser un HTTP POST-chaîne en JSON en PHP. De toute façon d'une manière qui fonctionne pour moi est: $inputContents = json_decode($HTTP_RAW_POST_DATA, true);
OriginalL'auteur Chris | 2013-02-16
Vous devez vous connecter pour publier un commentaire.
Les données JSON que vous soumettez n'est pas valide JSON.
Lorsque vous utilisez dans votre shell, elle ne le sera pas \" que vous ne le soupçonnez.
Fonctionne comme prévu.
Sorties:
OriginalL'auteur MatsLindh