Maison >développement back-end >tutoriel php >Pourquoi ma requête PHP cURL POST renvoie-t-elle un tableau JSON vide ?

Pourquoi ma requête PHP cURL POST renvoie-t-elle un tableau JSON vide ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-17 22:30:14547parcourir

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

Publication de données JSON avec PHP cURL : dépannage d'un tableau de résultats 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!

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