Maison >développement back-end >tutoriel php >Comment lire le corps d'une requête JSON POST en PHP ?

Comment lire le corps d'une requête JSON POST en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-15 01:55:12793parcourir

How to Read the Body of a JSON POST Request in PHP?

Lecture du corps d'une requête JSON POST en PHP

Introduction

Cet article aborde le sujet de la récupération et de l'analyse Requêtes JSON POST en PHP. Cela peut être particulièrement utile lorsque vous travaillez avec des services Web et des API qui transfèrent des données au format JSON.

Identification du problème

Lors de l'utilisation d'une application de type contenu/ json pour les requêtes POST, les méthodes conventionnelles telles que $_POST ne récupéreront pas les données. En effet, ces méthodes s'attendent à ce que le corps de la requête soit sous la forme de données application/x-www-form-urlencoded.

Solution : File_get_contents('php://input')

Pour résoudre ce problème, PHP fournit la fonction file_get_contents('php://input'), qui permet de lire les données brutes reçues dans le corps de la requête. Ces données brutes peuvent ensuite être analysées à l'aide des fonctions de décodage JSON.

Code mis à jour

Expéditeur (CURL)

$ch = curl_init('http://webservice.local/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen(json_encode($data))
));

$result = curl_exec($ch);
$result = json_decode($result);
var_dump($result);

Récepteur (PHP)

$json = file_get_contents('php://input');
$obj = json_decode($json, TRUE);

Notes supplémentaires

  • Supprimer une instance de l'en-tête 'Content-Type: application/json' du récepteur script, car il ne doit être défini qu'une seule fois.
  • Assurez-vous que le script de l'expéditeur envoie un JSON valide string.
  • Vous pouvez utiliser des outils comme Postman ou Insomnia pour envoyer facilement des requêtes JSON POST à ​​des fins de test.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn