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 $_REQUEST
Parameter verfügbar ). Wenn ich sie als x-www-form-urlencoded
Parameter sende , $_REQUEST
enthält der Parameter nur die PHPSESSID
.
Das Skript:
<?php
var_export($_REQUEST);
?>
Wenn ich URL-Parameter sende, $_REQUEST
enthält diese:
Wenn ich sie jedoch als POST
Variablen sende, werden sie $_REQUEST
nicht berücksichtigt:
Was vermisse ich?
Antworten:
Ich habe die URL in Postman so eingestellt, dass sie lautet,
http://
aber Apache hat zu umgeleitethttps://
und irgendwie wurden die POST-Variablen auf dem Weg gelöscht.Nachdem ich es geändert hatte
https://
, funktionierten die POST-Variablen ordnungsgemäß.Siehe auch: https://stackoverflow.com/a/28461500/704803
quelle
Generate Code
generiert wurde und falschen Code für Python-Anfragen generiert hat. querystring = {"Benutzername": "data1", "mydata": "9232"} payload = "" headers = {'Cache-Kontrolle': "kein Cache", 'Postman-Token': "aeb70e40-c12a-f713 -1d8d-596b8cf976af "} response = request.request (" POST ", URL, Daten = Nutzdaten, Header = Header, Parameter = Querystring) print (response.text) Ich denke, das ist fehlerhaft.Ich hatte beide Probleme mit PostMan und Advance REST Client. Ich habe Fiddler überprüft und festgestellt, dass meine Anforderungsnutzdaten nicht in das JSON-Format konvertiert wurden.
Ich übergebe meine Daten in Body als x-www-form-urlencoded
Sie können das Problem beheben, indem Sie Content-Type als application / x-www-form-urlencoded im Anforderungsheader verwenden.
quelle
application/x-www-form-urlencoded
funktioniert tatsächlich! IMHO, dies sollte als Antwort akzeptiert werden :)localhost/something
von POSTMAN nicht funktioniert, aber nach dem Hinzufügen/
am Ende begann PHP, die Werte vonPOST
und von zu erhaltenphp://input
. Ich musste es benutzenlocalhost/something/
, damit es funktionierte.PARAMS
Feld in der NäheURL
dieGET
Daten, nicht diePOST
Daten. Und das SchlüsselwortPARAMS
immer verwendet wird, umGET
und inDATA
Bezug auf wirdPOST
für die Weitergabe der Daten. Ich denke, Peeps bei PostMan sollten dies beheben, um automatisch zu ändern, oder dieDATA
Schaltfläche automatisch hinzufügen .Verwenden Sie einfach die
Body Tab
und geben Sie diepost parameters
dort ein. Beachten Sie, dass diesBody Tab
deaktiviert ist, wennGet
ausgewählt ist.quelle
Überprüfen Sie Ihren Inhaltstyp in der Kopfzeile. Ich hatte ein Problem mit dem Senden von unformatiertem JSON und meinem Inhaltstyp als application / json im POSTMAN-Header.
Mein PHP sah Jack alle in der Anfrage Post. Erst als ich den Inhaltstyp in Anwendung / x-www-form-urlencoded mit dem JSON im RAW-Textbereich und seinem Typ als JSON änderte, begann meine PHP-App, die Post-Daten zu sehen. Nicht das, was ich erwartet hatte, als ich mich mit Raw JSON beschäftigte, aber es funktioniert jetzt für das, was ich brauche.
quelle
Wenn Sie Parameter senden ,
x-www-form-urlencoded
dann müssen Sie Set - Header für die Anforderung wie die VerwendungContent-Type
alsapplication/x-www-form-urlencoded
quelle
Body
Registerkarte auszuwählen und auszuwählen,x-www-form-urlencoded
und unter dieser Auswahl finden Sie einen Schlüssel- / Werteintrag, in den Sie Ihre POST-Schlüssel- / Wertdaten einfügen. Übrigens ist meine Postman-Version 4.10.4Ich hatte das gleiche Problem. Um dies zu beheben, habe ich die folgenden Header hinzugefügt:
Ich musste den Inhaltstyp manuell hinzufügen, obwohl ich auch den Typ "json" in den Rohparametern des Postfelds hatte.
quelle
Es tut uns leid, wenn dies Thread-Nekromantie 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 die Spalte " Schlüssel " Folgendes einfügen müssen: " Inhaltstyp "; Ich dachte, dies sei ein Benutzerschlüssel, als er in der Anfrage zurückkam, was er nicht ist.
So etwas Einfaches könnte Ihnen helfen. Ich denke, Postman könnte diese Spalte besser formulieren, da ich nicht einmal die Dokumentation lesen musste, wenn es um die Verwendung von Fiddler ging. während ich mit Postman tat.
quelle
Für mich erwartete der Server HTTPS-Anforderungen, aber das habe ich in der URL nicht angegeben. Der Haken würde den Server erreichen, aber der Körper wäre leer.
quelle
raw JSON body
Versuchen Sie es mit anstatt zu verwendenform-data
.quelle
quelle