J'utilise l'extension Postman Chrome pour tester un service Web.
Trois options sont disponibles pour la saisie de données.
Je suppose que raw
c'est pour envoyer du JSON.
Quelle est la différence entre les deux autres form-data
et x-www-form-urlencoded
?
forms
web-services
rest
postman
Rohan
la source
la source
binary
.Réponses:
Il s'agit de différents types de contenu de formulaire définis par le W3C. Si vous souhaitez envoyer des données texte / ASCII simples, alors x-www-form-urlencoded fonctionnera. C'est la valeur par défaut.
Mais si vous devez envoyer du texte non ASCII ou des données binaires volumineuses, 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 telles quelles sans modifications. Le type de données que vous envoyez peut être défini à l'aide de l'en-tête de type de contenu dans la liste déroulante.
Le binaire 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 binaires.
Reportez-vous à ce lien pour en savoir plus: Formulaires dans les documents HTML
la source
Cela explique mieux: les documents Postman
METTRE À JOUR
Comme l'a souligné VKK , la spécification WHATWG indique que l'urlencoded est le type de codage par défaut pour les formulaires.
la source
Content-Type: application/json
tête; et les données brutes entrées comme json comme{foo: bar}
avec le même en-Content-Type: application/json
tête?multipart / form-data
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 les "multipart / form-data" et d'autres types de contenu, les 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 binaires 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 binaires.
Le type de contenu "multipart / form-data" suit les règles de tous les flux de données MIME multipart comme indiqué dans la 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 flux de documents. Les limites des pièces ne doivent apparaître dans aucune des données; comment cela est fait sort du cadre de cette spécification.
Comme avec tous les types MIME en plusieurs parties, chaque partie a un en-tête "Content-Type" facultatif qui est 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
Il s'agit du type de contenu par défaut. Les formulaires soumis avec ce type de contenu doivent être codés comme suit:
Les noms et 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 du caractère. Les sauts de ligne sont représentés par des paires "CR LF" (c'est-à-dire que%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és les uns 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:Le type de contenu "application / x-www-form-urlencoded" est inefficace pour envoyer de grandes quantités de données binaires 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 binaires.
la source
Voici quelques exemples supplémentaires pour voir le texte brut que Postman transmet dans la demande. Vous pouvez le voir en ouvrant la console Postman:
Données de formulaire
Entête
Corps
x-www-form-urlencoded
Entête
Corps
Texte brut / brut
Entête
Corps
Json brut
Entête
Corps
la source