Heim >Backend-Entwicklung >PHP-Tutorial >Wie lese ich den Text einer JSON-POST-Anfrage in PHP?
Einführung
Dieser Artikel befasst sich mit dem Thema Abrufen und Parsen JSON POST-Anfragen in PHP. Dies kann besonders nützlich sein, wenn Sie mit Webdiensten und APIs arbeiten, die Daten im JSON-Format übertragen.
Identifizieren des Problems
Bei Verwendung einer Inhaltsanwendung/ json für POST-Anfragen verwenden, können herkömmliche Methoden wie $_POST die Daten nicht abrufen. Dies liegt daran, dass diese Methoden erwarten, dass der Anforderungstext in Form von application/x-www-form-urlencoded-Daten vorliegt.
Lösung: File_get_contents('php://input')
Um dieses Problem zu beheben, stellt PHP die Funktion file_get_contents('php://input') bereit, mit der Sie die im Anfragetext empfangenen Rohdaten lesen können. Diese Rohdaten können dann mithilfe von JSON-Dekodierungsfunktionen analysiert werden.
Aktualisierter Code
Absender (CURL)
$ch = curl_init('http://webservice.local/'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen(json_encode($data)) )); $result = curl_exec($ch); $result = json_decode($result); var_dump($result);
Empfänger (PHP)
$json = file_get_contents('php://input'); $obj = json_decode($json, TRUE);
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWie lese ich den Text einer JSON-POST-Anfrage in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!