Maison > développement back-end > tutoriel php > Pourquoi ma requête PHP cURL POST renvoie-t-elle un tableau vide lors de l'envoi de données JSON ?

Pourquoi ma requête PHP cURL POST renvoie-t-elle un tableau vide lors de l'envoi de données JSON ?

DDD
Libérer: 2024-12-15 14:09:33
original
435 Les gens l'ont consulté

Why is my PHP cURL POST request returning an empty array when sending JSON data?

Comment POSTER des données JSON avec PHP cURL, les renvoyer dans un format lisible

Votre code ne publie pas correctement les données JSON, même sur votre serveur , il renvoie un tableau vide. Pour implémenter REST en utilisant JSON comme dans l'API de Shopify, nous devons résoudre ce problème.

Correction de la requête POST

Pour résoudre le problème, nous devons encoder l'intégralité Données POST en JSON, pas seulement le champ « client ». Modifiez votre code comme suit :

$ch = curl_init($url);
# Setup request to send JSON via POST.
$payload = json_encode(array("customer" => $data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
# Send request.
$result = curl_exec($ch);
curl_close($ch);
# Print response.
echo "<pre class="brush:php;toolbar:false">$result
";
Copier après la connexion

Accès aux données POST

Sur l'autre page, nous ne pouvons pas utiliser $_POST pour récupérer les données POST à ​​cause du serveur- analyse latérale. Utilisez plutôt file_get_contents("php://input"), qui contient le JSON POSTé. Pour afficher les données dans un format lisible :

echo '<pre class="brush:php;toolbar:false">'.print_r(json_decode(file_get_contents("php://input")),1).'
';
Copier après la connexion

Considérations supplémentaires

  • Envisagez d'utiliser une bibliothèque tierce pour interagir avec l'API Shopify au lieu de en interfaçant directement avec vous-même.
  • Assurez-vous que le serveur est configuré pour recevoir des requêtes JSON avec le type de contenu correct. en-tête.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal