Ich versuche, eine einfache PHP - Seite mit der Chrome-Erweiterung Postman zu testen. Wenn ich URL-Parameter sende, funktioniert das Skript einwandfrei (z. B. sind die Variablen im Parameter $_REQUEST
verfügbar). Wenn ich sie als x-www-form-urlencoded
-Parameter sende, enthält der $_REQUEST
-Parameter nur die PHPSESSID
.
Das Skript:
<?php
var_export($_REQUEST);
?>
Wenn ich URL-Parameter sende, enthält $_REQUEST
diese:
Wenn ich sie jedoch alsPOST
variables sende, enthält $_REQUEST
sie nicht:
Was vermisse ich?
Ich habe die URL in Postman auf http://
gesetzt, aber Apache hat zu https://
umgeleitet, und irgendwie wurden die Variablen POST auf dem Weg weggelassen.
Nachdem ich es in https://
geändert hatte, funktionierten die POST - Variablen ordnungsgemäß.
Siehe auch: https://stackoverflow.com/a/28461500/704803
In PostMan und Advance REST Client hatte ich beide das gleiche Problem. Ich habe Fiddler überprüft und festgestellt, dass meine Anforderungsnutzdaten nicht in das JSON-Format konvertiert werden.
Ich gebe meine Daten in Body as weiter x-www-form-urlencoded
Sie können es beheben, indem Sie verwenden Inhaltstyp wie application/x-www-form-urlencoded im Anforderungsheader .
Verwenden Sie einfach den Body Tab
und geben Sie dort den post parameters
ein. Beachten Sie, dass Body Tab
deaktiviert ist, wenn Get
ausgewählt ist.
Überprüfen Sie Ihren Inhaltstyp in der Kopfzeile. Ich hatte Probleme mit dem Senden von rohem JSON und meinem Inhaltstyp als application/json in der POSTMAN-Kopfzeile.
mein PHP sah Jack alle im Request Post. Erst als ich den Inhaltstyp in Application/x-www-form-urlencoded mit der JSON im RAW-Textbereich und seinem Typ als JSON änderte, begann meine Anwendung PHP, den Post zu sehen Daten. nicht das, was ich erwartet hatte, als ich mit rohem Json zu tun hatte, aber es funktioniert jetzt für das, was ich brauche.
Wenn Sie Parameter mit x-www-form-urlencoded
senden, müssen Sie den Header für die Anforderung so einstellen, dass Content-Type
als application/x-www-form-urlencoded
verwendet wird.
Ich hatte das gleiche Problem. Um das Problem zu beheben, habe ich folgende Header hinzugefügt:
Content-Type: application/json
Ich musste den Inhaltstyp manuell hinzufügen, obwohl ich auch den Typ "Json" in den rohen Postfeld-Parametern hatte.
Es tut uns leid, wenn dies der Thread Necromancy ist, aber dies ist auch heute noch relevant, insbesondere bei der Anzahl der verwendeten APIs!
Ein Problem, das ich hatte, war: Ich wusste nicht, dass Sie in der Spalte 'Key' Folgendes angeben müssen: 'Content-Type'; Ich dachte, dies sei ein Benutzerschlüssel für den Zeitpunkt, zu dem er in der Anfrage zurückkam, was er nicht ist.
Etwas so einfaches könnte Ihnen dabei helfen, ich denke Postman könnte diese Kolumne besser formulieren, weil ich die Dokumentation nicht einmal lesen musste, wenn es um die Verwendung von Fiddler ging. während ich mit Postman tat.
Für mich erwartete der Server HTTPS-Anfragen, aber dies wurde in der URL nicht angegeben. Der Haken würde den Server erreichen, der Körper wäre jedoch leer.
Manchmal Versionsproblem in 'Postman':
Ich habe das gleiche Problem. Beim Senden der Daten mit der ältesten Version des Postboten.
Zu dieser Zeit habe ich die leeren Json-Daten auf der Serverseite erhalten.
Und Ich habe dieses Problem behoben , Sobald ich die älteste Version von Postman deinstalliere und mit der neuesten Version installiere.