Problem beim Lesen des HTTP-Anforderungstexts aus einem JSON-POST in PHP

In PHP können Sie den Körper einer HTTP-Anforderung mit der Funktion file_get_contents('php:input') lesen. Um den Körper als JSON-Objekt zu parsen, können Sie die Funktion json_decode() verwenden. Hier ist ein Beispiel dafür, wie Sie dies für eine JSON-POST-Anforderung tun können:

<?php

$data = json_decode(file_get_contents('php://input'), true);

Die Funktion json_decode() nimmt den rohen Eingabezeichenfolgenstring und wandelt ihn in ein PHP-assoziatives Array um. Der zweite Parameter von json_decode() ist ein boolescher Wert, der angibt, ob ein assoziatives Array zurückgegeben werden soll. In diesem Fall ist es auf true gesetzt.

Stellen Sie sicher, dass Ihre PHP-Version mindestens 5.2 ist und überprüfen Sie auch, ob die JSON-Erweiterung in Ihrer php.ini-Datei aktiviert ist.

Außerdem sollten Sie überprüfen, ob die POST-Anforderung im richtigen Format und mit dem richtigen Content-Type-Header kommt.

<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_SERVER['CONTENT_TYPE']) && $_SERVER['CONTENT_TYPE'] === 'application/json') {
  $data = json_decode(file_get_contents('php://input'), true);
  // do something with $data
} else {
  // handle invalid request
}