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

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

DDD
DDDOriginal
2024-12-15 14:09:33437Durchsuche

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

So posten Sie JSON-Daten mit PHP cURL und geben sie in lesbarem Format zurück

Ihr Code veröffentlicht JSON-Daten nicht korrekt, selbst auf Ihrem Server , es gibt ein leeres Array zurück. Um REST mithilfe von JSON wie in der Shopify-API zu implementieren, müssen wir dieses Problem beheben.

Korrektur der POST-Anfrage

Um das Problem zu beheben, müssen wir das Ganze kodieren POST-Daten in JSON, nicht nur das Feld „Kunde“. Ändern Sie Ihren Code wie folgt:

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

Zugriff auf die POST-Daten

Auf der anderen Seite können wir $_POST nicht verwenden, um die POST-Daten abzurufen, da Server- Seitenanalyse. Verwenden Sie stattdessen file_get_contents("php://input"), das den POSTed JSON enthält. So zeigen Sie die Daten in einem lesbaren Format an:

echo '<pre class="brush:php;toolbar:false">'.print_r(json_decode(file_get_contents("php://input")),1).'
';

Zusätzliche Überlegungen

  • Erwägen Sie stattdessen die Verwendung einer Drittanbieterbibliothek zur Interaktion mit der Shopify-API Stellen Sie sicher, dass der Server so konfiguriert ist, dass er JSON-Anfragen mit dem richtigen Inhaltstyp empfängt Kopfzeile.

Das obige ist der detaillierte Inhalt vonWarum gibt meine PHP-cURL-POST-Anfrage beim Senden von JSON-Daten ein leeres 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