Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich JSON-POST-Daten in meinem PHP-Webdienst lesen?

Wie kann ich JSON-POST-Daten in meinem PHP-Webdienst lesen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-17 02:02:24535Durchsuche

How Can I Read JSON POST Data in My PHP Web Service?

JSON-POST mit PHP lesen

Haben Sie Schwierigkeiten, JSON-Daten in einem PHP-Webdienst zu lesen?

< h3>Das Problem

Sie haben einen Webdienst Das funktioniert perfekt mit einfachen Formulardaten. Wenn Sie jedoch POST-Daten mit dem Inhaltstyp „application/json“ senden müssen, gibt Ihr Webdienst keine Werte zurück. Sie vermuten, dass es damit zusammenhängt, wie Sie mit den POST-Werten umgehen.

Die Lösung

Das Problem liegt in der Art und Weise, wie Sie auf die POST-Daten zugreifen. Für JSON-POST-Anfragen müssen Sie eine andere Methode als die Standardvariable $_POST verwenden.

JSON-POST-Daten lesen

Zum Lesen von JSON-Daten aus dem POST Auf Anfrage verwenden Sie den folgenden Code:

$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); // Convert JSON into an array

// Use the $input array to access your JSON data

Reparieren der CURL Code

In Ihrer CURL-Anfrage verwenden Sie CURLOPT_POSTFIELDS, um Ihre Parameter als application/x-www-form-urlencoded zu kodieren. Für eine JSON-POST-Anfrage müssen Sie jedoch JSON-formatierte Daten bereitstellen.

Ändern Sie Ihren CURL-Code wie folgt:

$data_string = json_encode($data);

$curl = curl_init('http://webservice.local/');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string)
));

Modifizieren Sie den Webdienst

Stellen Sie sicher, dass es nur einen Aufruf von header('Content-type: application/json') gibt. auf Ihrer Webservice-Seite. Bei mehreren Aufrufen kann es zu Störungen der JSON-Antwort kommen.

Das obige ist der detaillierte Inhalt vonWie kann ich JSON-POST-Daten in meinem PHP-Webdienst lesen?. 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