Maison >développement back-end >tutoriel php >Pourquoi ma requête PHP cURL POST renvoie-t-elle un tableau JSON vide ?
Lorsque vous essayez de publier des données JSON avec PHP cURL, vous pouvez rencontrer un problème où le tableau résultant reste vide . Cet article résout ce problème et propose une solution.
Publication JSON incorrecte
Dans votre code fourni, les données JSON ne sont pas formatées de manière incorrecte pour la publication. Au lieu d'utiliser curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer" => $data_string)), vous devez encoder l'intégralité du tableau de données au format JSON et le publier en tant que charge utile : curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array( "client" => $data))).
Résultat inattendu
Même avec le formatage JSON correct, l'utilisation de print_r ($_POST) pour récupérer les données publiées est inefficace. Pour accéder aux données JSON entrantes, utilisez file_get_contents("php://input") sur la page de réception.
Extrait de code amélioré
L'extrait de code suivant illustre le approche correcte :
$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";
Tiers Bibliothèques
Envisagez d'utiliser des bibliothèques tierces pour vous connecter à l'API Shopify. Cela peut simplifier le processus et fournir des fonctionnalités supplémentaires.
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!