it-swarm.com.de

Was ist der Unterschied zwischen Formulardaten, x-www-formular-urlencoded und raw in der Anwendung Postman Chrome)?

Ich verwende die Postman-Erweiterung Chrome zum Testen eines Webdienstes. Es gibt drei Optionen für die Dateneingabe. Ich denke, das Raw-Format ist für das Senden von JSON. Was ist der Unterschied zwischen den beiden anderen Formularen? -data und x-www-form-urlencoded?

174
Rohan

Hierbei handelt es sich um verschiedene von W3C definierte Formularinhaltstypen. Wenn Sie einfachen Text/ASCII Daten senden möchten, funktioniert x-www-form-urlencoded ist die Standardeinstellung.

Wenn Sie jedoch Nicht-ASCII-Text oder große Binärdaten senden müssen, sind die Formulardaten dafür vorgesehen.

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 unverändert. Der Typ der Daten, die Sie senden, kann mithilfe des Headers für den Inhaltstyp in der Dropdown-Liste festgelegt werden.

Binär kann verwendet werden, wenn Sie der Anforderung nichttextuelle Daten hinzufügen möchten, z. eine Video-/Audiodatei, Bilder oder eine andere binäre Datendatei.

Weitere Informationen finden Sie unter diesem Link: Formulare in HTML-Dokumenten

197
Basant Singh

Dies erklärt besser: Postman docs

Körper anfordern

Bei der Erstellung von Anfragen würden Sie sich häufig mit dem Editor für den Anfragetext befassen. Mit Postman können Sie fast jede Art von HTTP-Anfrage senden (Wenn Sie etwas nicht senden können, lassen Sie es uns wissen!). Der Body Editor ist in 4 Bereiche unterteilt und verfügt je nach Körpertyp über unterschiedliche Steuerelemente.

formulardaten

multipart/Formulardaten ist die Standardkodierung, die ein Webformular zum Übertragen von Daten verwendet. Dadurch wird simuliert, wie ein Formular auf einer Website ausgefüllt und gesendet wird. Mit dem Formulardaten-Editor können Sie Schlüssel/Wert-Paare (mithilfe des Schlüssel-Wert-Editors) für Ihre Daten festlegen. Sie können auch Dateien an einen Schlüssel anhängen. Beachten Sie, dass Dateien aufgrund von Einschränkungen der HTML5-Spezifikation nicht im Verlauf oder in Sammlungen gespeichert werden. Sie müssten die Datei zum Zeitpunkt des Sendens einer Anfrage erneut auswählen.

urlencodiert

Diese Codierung entspricht der in URL-Parametern verwendeten. Sie müssen nur Schlüssel/Wert-Paare eingeben, und Postman codiert die Schlüssel und Werte ordnungsgemäß. Beachten Sie, dass Sie in diesem Codierungsmodus keine Dateien hochladen können. Möglicherweise besteht eine gewisse Verwechslungsgefahr zwischen Formulardaten und urlencodierten Daten. Überprüfen Sie dies zunächst mit Ihrer API.

roh

Eine unformatierte Anfrage kann alles enthalten. Postman berührt die im Roheditor eingegebene Zeichenfolge nur, wenn Umgebungsvariablen ersetzt werden. Was auch immer Sie in den Textbereich eingeben, wird mit der Anfrage gesendet. Mit dem Raw-Editor können Sie den Formatierungstyp zusammen mit dem richtigen Header festlegen, der mit dem Raw-Body gesendet werden soll. Sie können den Content-Type-Header auch manuell festlegen. Normalerweise senden Sie hier XML- oder JSON-Daten.

binär

mit Binärdaten können Sie Dinge senden, die Sie nicht in Postman eingeben können. Zum Beispiel Bild-, Audio- oder Videodateien. Sie können auch Textdateien senden. Wie bereits im Abschnitt mit den Formulardaten erwähnt, müssten Sie eine Datei erneut anfügen, wenn Sie eine Anforderung über den Verlauf oder die Sammlung laden.

[~ # ~] Update [~ # ~]

Wie von VKK hervorgehoben, ist WHATWG spec say urlencoded der Standardcodierungstyp für Formulare.

Der ungültige Standardwert für diese Attribute ist der Status application/x-www-form-urlencoded. Der fehlende Standardwert für das Attribut enctype ist auch der Status application/x-www-form-urlencoded.

81
avck

mehrteilige/Formulardaten

Hinweis. Bitte konsultieren Sie RFC2388 für zusätzliche Informationen zu Dateiuploads, einschließlich Abwärtskompatibilitätsproblemen, der Beziehung zwischen "Multipart/Formulardaten" und anderen Inhaltstypen, Leistungsproblemen usw.

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 "mehrteilig/Formulardaten" folgt den Regeln aller mehrteiligen MIME-Datenströme, wie in RFC2045 beschrieben. Die Definition von "Multipart-/Formulardaten" ist in der [IANA] -Registrierungsdatenbank verfügbar.

Eine "Multipart/Form-Data" -Nachricht enthält eine Reihe von Teilen, die jeweils eine erfolgreiche Steuerung darstellen. Die Teile werden in derselben Reihenfolge an den Bearbeiter gesendet, in der die entsprechenden Steuerelemente im Dokumentstrom angezeigt werden. Teilegrenzen sollten in keinem der Daten auftreten. Wie dies getan wird, liegt außerhalb des Umfangs dieser Spezifikation.

Wie bei allen mehrteiligen MIME-Typen hat jeder Teil einen optionalen "Content-Type" -Header, der standardmäßig "text/plain" lautet. Benutzerprogramme sollten den Header "Content-Type" zusammen mit einem Parameter "charset" bereitstellen.

application/x-www-form-urlencoded

Dies ist der Standardinhaltstyp. Mit diesem Inhaltstyp übermittelte 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 Hexadezimalziffern 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 werden 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:

MyVariableOne=ValueOne&MyVariableTwo=ValueTwo

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.

19

Im Folgenden finden Sie einige ergänzende Beispiele für den Rohtext, den Postman in der Anforderung übergibt. Sie können dies sehen, indem Sie die Postman-Konsole öffnen:

enter image description here

formulardaten

Header

content-type: multipart/form-data; boundary=--------------------------590299136414163472038474

Körper

key1=value1key2=value2

x-www-form-urlencoded

Header

Content-Type: application/x-www-form-urlencoded

Körper

key1=value1&key2=value2

Rohtext/normal

Header

Content-Type: text/plain

Körper

This is some text.

Raw Json

Header

Content-Type: application/json

Körper

{"key1":"value1","key2":"value2"}
6
Suragch