Heim > Backend-Entwicklung > PHP-Tutorial > Warum werden meine cURL POST JSON-Daten in PHP als leer interpretiert?

Warum werden meine cURL POST JSON-Daten in PHP als leer interpretiert?

DDD
Freigeben: 2024-11-19 03:34:02
Original
569 Leute haben es durchsucht

Why is my cURL POST JSON data interpreted as empty in PHP?

JSON in PHP unter Verwendung von cURL veröffentlichen: Ein Problem mit der Dateninterpretation

Bei einem Versuch, einen cURL-POST-Befehl innerhalb eines Aussparungs-PHP-Frameworks auszuführen , ein Benutzer hatte Schwierigkeiten bei der Interpretation der geposteten Daten. Insbesondere wurde der POST-Parameter -d nicht wie erwartet erkannt, was zu einem leeren Array führte.

Problembeschreibung

Ein Benutzer hat versucht, den cURL-Befehl zu verwenden:

curl -i -X POST -d '{"screencast":{"subject":"tools"}}'  \         
http://localhost:3570/index.php/trainingServer/screencast.json
Nach dem Login kopieren

Obwohl der Befehl sowohl unter Windows (PHP 5.2) als auch unter Linux (gleiche PHP-Version) ausgeführt wurde, wurden die POST-Daten nicht angezeigt richtig interpretiert. Die Serverantwort zeigte ein leeres „Screencast“-Array an, wie unten zu sehen:

{"screencast":{"id":null,"subject":null,"body":null,
         "dataUrl":null,"dataMedium":null,"createdOn":null,"author":null}}
Nach dem Login kopieren

Lösung

Das Problem rührte von der Standardannahme von cURL her, dass der Parameter -d dies angibt formcodierte Daten. Um dieses Problem zu beheben, muss der Parameter -H verwendet werden, um den Inhaltstyp als JSON anzugeben:

curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \
http://localhost:3570/index.php/trainingServer/screencast.json
Nach dem Login kopieren

Mit dieser Änderung hat cURL die veröffentlichten JSON-Daten korrekt interpretiert und der POST-Vorgang war erfolgreich.

Das obige ist der detaillierte Inhalt vonWarum werden meine cURL POST JSON-Daten in PHP als leer interpretiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage