Quelle est la différence entre les données de formulaire, x-www-form-urlencoded et raw dans l’application Postman Chrome?

J’utilise l’extension Postman Chrome pour tester un service Web. Trois options sont disponibles pour la saisie de données. Je suppose que le brut est pour l’envoi de JSON. Quelle est la différence entre les deux autres, form-data et x-www-form-urlencoded?

Ce sont différents types de contenu de formulaire définis par le W3C. Si vous voulez envoyer des données texte / ASCII simples, alors x-www-form-urlencoded fonctionnera. Ceci est la valeur par défaut.

Mais si vous devez envoyer du texte non-ASCII ou de grandes données binarys, les données de formulaire sont pour cela.

Vous pouvez utiliser Raw si vous souhaitez envoyer du texte brut ou du JSON ou tout autre type de chaîne. Comme son nom l’indique, Postman envoie vos données de chaîne brutes sans modifications. Le type de données que vous envoyez peut être défini à l’aide de l’en-tête de type contenu de la liste déroulante.

Binary peut être utilisé lorsque vous souhaitez joindre des données non textuelles à la demande, par exemple un fichier vidéo / audio, des images ou tout autre fichier de données binarys.

Reportez-vous à ce lien pour plus d’informations: Formulaires dans des documents HTML

Cela explique mieux: Postman docs

Demander un corps

Lors de la construction des requêtes, vous devez beaucoup traiter avec l’éditeur de corps de requête. Postman vous permet d’envoyer presque n’importe quel type de requête HTTP (si vous ne pouvez pas envoyer quelque chose, faites-le nous savoir!). L’éditeur de corps est divisé en 4 zones et possède des contrôles différents en fonction du type de corps.

Données de formulaire

multipart / form-data est l’encodage par défaut utilisé par un formulaire Web pour transférer des données. Cela simule de remplir un formulaire sur un site Web et de le soumettre. L’éditeur de données de formulaire vous permet de définir des paires clé / valeur (à l’aide de l’éditeur de valeur-clé) pour vos données. Vous pouvez également joindre des fichiers à une clé. Notez qu’en raison des ressortingctions de la spécification HTML5, les fichiers ne sont pas stockés dans l’historique ou les collections. Vous devrez sélectionner à nouveau le fichier au moment de l’envoi d’une demande.

Urlencodé

Cet encodage est identique à celui utilisé dans les parameters URL. Il vous suffit d’entrer des paires clé / valeur et Postman encodera les clés et les valeurs correctement. Notez que vous ne pouvez pas télécharger de fichiers via ce mode de codage. Il pourrait y avoir une certaine confusion entre les données de formulaire et les URL, alors assurez-vous de vérifier d’abord avec votre API.

brut

Une requête brute peut contenir n’importe quoi. Postman ne touche pas la chaîne entrée dans l’éditeur brut, sauf le remplacement des variables d’environnement. Tout ce que vous mettez dans la zone de texte est envoyé avec la demande. L’éditeur brut vous permet de définir le type de formatage avec l’en-tête correct que vous devez envoyer avec le corps brut. Vous pouvez également définir l’en-tête Content-Type manuellement. Normalement, vous envoyez des données XML ou JSON ici.

binary

Les données binarys vous permettent d’envoyer des choses que vous ne pouvez pas entrer dans Postman. Par exemple, des fichiers image, audio ou vidéo. Vous pouvez également envoyer des fichiers texte. Comme mentionné précédemment dans la section des données de formulaire, vous devrez rattacher un fichier si vous chargez une requête via l’historique ou la collection.

METTRE À JOUR

Comme indiqué par VKK , la spécification WHATWG dit urlencoded est le type de codage par défaut pour les formulaires.

La valeur par défaut non valide pour ces atsortingbuts est l’état application / x-www-form-urlencoded. La valeur manquante par défaut pour l’atsortingbut enctype est également l’état application / x-www-form-urlencoded.

multipart / données de formulaire

Remarque. Veuillez consulter la [RFC2388] pour plus d’informations sur les téléchargements de fichiers, y compris les problèmes de compatibilité ascendante, la relation entre «multipart / form-data» et d’autres types de contenu, problèmes de performances, etc.

Veuillez consulter l’annexe pour plus d’informations sur les problèmes de sécurité des formulaires.

Le type de contenu “application / x-www-form-urlencoded” est inefficace pour envoyer de grandes quantités de données binarys ou de texte contenant des caractères non-ASCII. Le type de contenu “multipart / form-data” doit être utilisé pour soumettre des formulaires contenant des fichiers, des données non-ASCII et des données binarys.

Le contenu “multipart / form-data” suit les règles de tous les stream de données MIME en plusieurs parties, comme indiqué dans [RFC2045]. La définition de “multipart / form-data” est disponible dans le registre [IANA].

Un message “multipart / form-data” contient une série de parties, chacune représentant un contrôle réussi. Les pièces sont envoyées à l’agent de traitement dans le même ordre que les contrôles correspondants apparaissent dans le stream de documents. Les limites des pièces ne doivent figurer dans aucune des données. la manière dont cela se fait ne relève pas de la présente spécification.

Comme avec tous les types MIME en plusieurs parties, chaque partie possède un en-tête facultatif “Content-Type” qui utilise par défaut “text / plain”. Les agents utilisateurs doivent fournir l’en-tête “Content-Type”, accompagné d’un paramètre “charset”.

application / x-www-form-urlencoded

C’est le type de contenu par défaut. Les formulaires soumis avec ce type de contenu doivent être encodés comme suit:

Les noms et les valeurs de contrôle sont échappés. Les caractères d’espace sont remplacés par +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by % HH’, un signe de pourcentage et deux chiffres hexadécimaux représentant le code ASCII. Les sauts de ligne sont représentés par des paires “CR LF” (c.-à-d. %0D%0A'). The control names/values are listed in the order they appear in the document. The name is separated from the value by %0D%0A'). The control names/values are listed in the order they appear in the document. The name is separated from the value by %0D%0A'). The control names/values are listed in the order they appear in the document. The name is separated from the value by = ‘et les paires nom / valeur sont séparées les unes des autres par `&’.

application/x-www-form-urlencoded le corps du message HTTP envoyé au serveur est essentiellement une chaîne de requête géante – les paires nom / valeur sont séparées par l’esperluette (&), et les noms sont séparés des valeurs par le symbole égal (=). Un exemple de ceci serait:

 MyVariableOne=ValueOne&MyVariableTwo=ValueTwo 

Le type de contenu “application / x-www-form-urlencoded” est inefficace pour envoyer de grandes quantités de données binarys ou de texte contenant des caractères non-ASCII. Le type de contenu “multipart / form-data” doit être utilisé pour soumettre des formulaires contenant des fichiers, des données non-ASCII et des données binarys.