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
Freigeben: 2024-12-15 14:09:33
Original
445 Leute haben es durchsucht

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
";
Nach dem Login kopieren

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).'
';
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage