Beim Versuch, JSON-Daten mit PHP cURL zu veröffentlichen, kann es zu einem Problem kommen, bei dem das resultierende Array leer bleibt . Dieser Artikel befasst sich mit diesem Problem und bietet eine Lösung.
Falsche JSON-Veröffentlichung
In Ihrem bereitgestellten Code sind die JSON-Daten für die Veröffentlichung falsch formatiert. Anstatt curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer" => $data_string)) zu verwenden, sollten Sie das gesamte Datenarray als JSON codieren und als Nutzlast veröffentlichen: curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array( "Kunde" => $data))).
Unerwartetes Ergebnis
Selbst bei korrekter JSON-Formatierung ist die Verwendung von print_r ($_POST) zum Abrufen der geposteten Daten wirkungslos. Um auf die eingehenden JSON-Daten zuzugreifen, verwenden Sie file_get_contents("php://input") auf der Empfangsseite.
Verbessertes Code-Snippet
Das folgende Code-Snippet demonstriert dies Richtiger Ansatz:
$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";
Drittanbieter Bibliotheken
Erwägen Sie die Nutzung von Bibliotheken von Drittanbietern für die Anbindung an die Shopify-API. Dies kann den Prozess vereinfachen und zusätzliche Funktionalität bieten.
Das obige ist der detaillierte Inhalt vonWarum gibt meine PHP-cURL-POST-Anfrage ein leeres JSON-Array zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!