Maison > développement back-end > tutoriel php > Comment puis-je lire les données JSON POST dans mon service Web PHP ?

Comment puis-je lire les données JSON POST dans mon service Web PHP ?

Barbara Streisand
Libérer: 2024-12-17 02:02:24
original
600 Les gens l'ont consulté

How Can I Read JSON POST Data in My PHP Web Service?

Lecture de JSON POST à ​​l'aide de PHP

Vous avez du mal à lire des données JSON dans un service Web PHP ?

< h3>Le problème

Vous disposer d'un service Web qui fonctionne parfaitement avec des données de formulaire simples. Cependant, lorsque vous devez envoyer des données POST avec un type de contenu application/json, votre service Web ne renvoie aucune valeur. Vous pensez que cela est lié à la façon dont vous gérez les valeurs POST.

La solution

Le problème réside dans la manière dont vous accédez aux données POST. Pour les requêtes JSON POST, vous devez utiliser une méthode différente de la variable $_POST standard.

Lecture des données JSON POST

Pour lire les données JSON à partir du POST demande, utilisez le code suivant :

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); // Convert JSON into an array

// Use the $input array to access your JSON data
Copier après la connexion

Fixation du Code CURL

Dans votre requête CURL, vous utilisez CURLOPT_POSTFIELDS pour encoder vos paramètres sous la forme application/x-www-form-urlencoded. Cependant, pour une requête JSON POST, vous devez fournir des données au format JSON.

Modifiez votre code CURL comme suit :

$data_string = json_encode($data);

$curl = curl_init('http://webservice.local/');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string)
));
Copier après la connexion

Modifier le service Web

Assurez-vous qu'il n'y a qu'un seul appel à header('Content-type: application/json'); dans la page de votre service Web. S'il y a plusieurs appels, cela peut interférer avec la réponse JSON.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal