Heim >Backend-Entwicklung >PHP-Tutorial >Wie lese ich den Text einer JSON-POST-Anfrage in PHP?

Wie lese ich den Text einer JSON-POST-Anfrage in PHP?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-15 01:55:12796Durchsuche

How to Read the Body of a JSON POST Request in PHP?

Lesen des Hauptteils 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

  • Entfernen Sie eine Instanz des Headers „Content-Type: application/json“ vom Empfänger Skript, da es nur einmal festgelegt werden sollte.
  • Stellen Sie sicher, dass das Absenderskript ein gültiges JSON sendet string.
  • Sie können Tools wie Postman oder Insomnia verwenden, um JSON POST-Anfragen zu Testzwecken einfach zu senden.

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!

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