Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt meine PHP-cURL-POST-Anfrage ein leeres JSON-Array zurück?

Warum gibt meine PHP-cURL-POST-Anfrage ein leeres JSON-Array zurück?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-17 22:30:14551Durchsuche

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

JSON-Daten mit PHP cURL veröffentlichen: Fehlerbehebung bei leerem Ergebnis-Array

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn