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
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!