Ich verwende die Postman Chrome-Erweiterung zum Testen eines Webdienstes.
Für die Dateneingabe stehen drei Optionen zur Verfügung.
Ich denke, das raw
ist für das Senden von JSON.
Was ist der Unterschied zwischen den beiden anderen form-data
und x-www-form-urlencoded
?
forms
web-services
rest
postman
Rohan
quelle
quelle
binary
.Antworten:
Dies sind verschiedene von W3C definierte Formularinhaltstypen. Wenn Sie einfache Text- / ASCII-Daten senden möchten , funktioniert x-www-form-urlencoded . Dies ist die Standardeinstellung.
Wenn Sie jedoch Nicht-ASCII-Text oder große Binärdaten senden müssen, sind die Formulardaten dafür.
Sie können Raw verwenden, wenn Sie einfachen Text oder JSON oder eine andere Art von Zeichenfolge senden möchten. Wie der Name schon sagt, sendet Postman Ihre Rohdaten für die Zeichenfolge unverändert. Der Datentyp, den Sie senden, kann mithilfe des Headers für den Inhaltstyp aus der Dropdown-Liste festgelegt werden.
Binär kann verwendet werden, wenn Sie der Anforderung nicht-textuelle Daten hinzufügen möchten, z. B. eine Video- / Audiodatei, Bilder oder eine andere binäre Datendatei.
Weitere Informationen finden Sie unter diesem Link: Formulare in HTML-Dokumenten
quelle
Dies erklärt besser: Postman docs
AKTUALISIEREN
Wie von VKK hervorgehoben , ist urlencoded laut WHATWG-Spezifikation der Standardcodierungstyp für Formulare.
quelle
Content-Type: application/json
Header gesendet wurden ? und Rohdaten als json wie{foo: bar}
mit dem gleichenContent-Type: application/json
Header eingegeben ?mehrteilige / Formulardaten
Hinweis. Weitere Informationen zu Datei-Uploads, einschließlich Abwärtskompatibilitätsproblemen, der Beziehung zwischen "Mehrteil- / Formulardaten" und anderen Inhaltstypen, Leistungsproblemen usw., finden Sie in RFC2388 .
Informationen zu Sicherheitsproblemen bei Formularen finden Sie im Anhang.
Der Inhaltstyp "application / x-www-form-urlencoded" ist ineffizient, um große Mengen von Binärdaten oder Text mit Nicht-ASCII-Zeichen zu senden. Der Inhaltstyp "Multipart / Formulardaten" sollte zum Senden von Formularen verwendet werden, die Dateien, Nicht-ASCII-Daten und Binärdaten enthalten.
Der Inhaltstyp "Multipart / Formulardaten" folgt den in RFC2045 beschriebenen Regeln aller mehrteiligen MIME-Datenströme . Die Definition von "Multipart / Formulardaten" ist in der [IANA] -Registrierung verfügbar.
Eine "Multipart / Formulardaten" -Nachricht enthält eine Reihe von Teilen, die jeweils eine erfolgreiche Steuerung darstellen. Die Teile werden in derselben Reihenfolge an den Verarbeitungsagenten gesendet, in der die entsprechenden Steuerelemente im Dokumentstrom angezeigt werden. Teilegrenzen sollten in keiner der Daten auftreten. Wie dies geschieht, liegt außerhalb des Geltungsbereichs dieser Spezifikation.
Wie bei allen mehrteiligen MIME-Typen verfügt jeder Teil über einen optionalen "Content-Type" -Header, der standardmäßig "text / plain" ist. Benutzerprogramme sollten den Header "Content-Type" zusammen mit einem Parameter "charset" angeben.
application / x-www-form-urlencoded
Dies ist der Standardinhaltstyp. Mit diesem Inhaltstyp eingereichte Formulare müssen wie folgt codiert werden:
Kontrollnamen und -werte werden maskiert. Leerzeichen werden durch
+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
% HH ', ein Prozentzeichen und zwei hexadezimale Ziffern ersetzt, die den ASCII-Code des Zeichens darstellen. Zeilenumbrüche werden als "CR LF" -Paare dargestellt (dh%0D%0A'). The control names/values are listed in the order they appear in the document. The name is separated from the value by
= 'und Name / Wert-Paare sind durch "&" voneinander getrennt.application/x-www-form-urlencoded
Der Hauptteil der an den Server gesendeten HTTP-Nachricht besteht im Wesentlichen aus einer riesigen Abfragezeichenfolge. Name / Wert-Paare werden durch das kaufmännische Und (&) und Namen durch das Gleichheitszeichen (=) von den Werten getrennt. Ein Beispiel hierfür wäre:Der Inhaltstyp "application / x-www-form-urlencoded" ist ineffizient, um große Mengen von Binärdaten oder Text mit Nicht-ASCII-Zeichen zu senden. Der Inhaltstyp "Multipart / Formulardaten" sollte zum Senden von Formularen verwendet werden, die Dateien, Nicht-ASCII-Daten und Binärdaten enthalten.
quelle
Hier sind einige ergänzende Beispiele, um den Rohtext zu sehen, den Postman in der Anfrage übergibt. Sie können dies sehen, indem Sie die Postman-Konsole öffnen:
Formulardaten
Header
Körper
x-www-form-urlencoded
Header
Körper
Rohtext / Klartext
Header
Körper
Roher Json
Header
Körper
quelle