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
DDDoriginal
2024-12-15 14:09:33437parcourir

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
";

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).'
';

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!

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