Lorsque vous travaillez avec des services Web qui nécessitent la publication de données au format JSON, il est essentiel de gérer correctement les valeurs POST en PHP. Cet article vous guidera à travers les étapes pour lire et analyser efficacement les données JSON POST.
Si vous rencontrez des problèmes avec des $ vides. _POST malgré la spécification de application/json comme Content-Type, cela est probablement dû à la façon dont vous filtrez les valeurs de publication. Dans ce cas, la variable classique $_POST n'est pas adaptée à la lecture de données au format JSON.
Pour accéder au brut Données JSON POST, vous devez utiliser file_get_contents('php://input'). Cette fonction lit le flux d'entrée du script actuel et renvoie le corps brut de la requête HTTP.
Code PHP mis à jour du côté récepteur :
$json = file_get_contents('php://input'); $obj = json_decode($json);
Lorsque vous testez votre service Web, il est crucial de vous assurer que les données POST sont envoyées dans le bon format. Dans votre code de test :
Test mis à jour code :
$data_string = json_encode($data); $ch = curl_init('http://webservice.local/'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch); $result = json_decode($result);
Assurez-vous que l'en-tête('Content-type: application/json') n'est appelé qu'une seule fois du côté récepteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!