Ich habe eine Rest API erstellt, die gut funktioniert, aber ich bemerkte eine seltsame Sache. Für den Inhalt vom Client gesendeten Deserialisieren ich diesen Code verwenden:json_decode funktioniert nicht mit curl
var_dump(json_decode(file_get_contents("php://input"), true));
Wenn ich eine Anfrage mit POSTMAN
(Chrome Extension) senden, die alle gute Arbeit finden Sie unter:
aber wenn ich verwenden curl
mit MINGW64
ich werde NULL
erhalten:
nun in beiden Fällen überprüfte ich den Codierungstyp, die mit diesem Code war:
$content = file_get_contents("php://input");
$encode = mb_detect_encoding($content, "auto");
$json = mb_convert_encoding($content, $encode);
var_dump($json);
und diese Rückkehr UTF-8
Ich verstehe nicht, warum mit curl MINGW64
Konsole nicht funktioniert und mit der Erweiterung Arbeits Was ist passiert?
UPDATE
Ich habe diese Funktion ausgeführt: json_last_error()
und haben 5
zurückgekehrt, auf dieser site sah ich, dass sich die Zahl auf einem Fehler entsprechen:
5 = JSON_ERROR_UTF8
aber ich habe keine Ahnung, was ist falsch.
Sie können versuchen, Inhalt aus Datei zu lesen, um sicher zu sein, dass die Konsole die Codierung nicht beschädigt hat. – vitas
@vitas was meinst du mit datei? – Dillinger
'curl -i -H" Token: Firma "-X PUT http: // localhost/... --data-binary @ input.json' und in der Datei' input.json' wird Ihre JSON-Anfrage. – vitas