Estoy usando la extensión Postman Chrome para probar un servicio web.
Hay tres opciones disponibles para la entrada de datos.
Supongo que raw
es para enviar JSON.
¿Cuál es la diferencia entre los otros dos form-data
y x-www-form-urlencoded
?
forms
web-services
rest
postman
Rohan
fuente
fuente
binary
.Respuestas:
Estos son diferentes tipos de contenido de formulario definidos por W3C. Si desea enviar texto simple / datos ASCII, entonces x-www-form-urlencoded funcionará. Este es el valor predeterminado.
Pero si tiene que enviar texto no ASCII o datos binarios grandes, los datos del formulario son para eso.
Puede usar Raw si desea enviar texto sin formato o JSON o cualquier otro tipo de cadena. Como su nombre indica, Postman envía sus datos de cadena sin procesar tal como están sin modificaciones. El tipo de datos que está enviando se puede configurar utilizando el encabezado de tipo de contenido del menú desplegable.
Binario se puede usar cuando desea adjuntar datos no textuales a la solicitud, por ejemplo, un archivo de video / audio, imágenes o cualquier otro archivo de datos binarios.
Consulte este enlace para leer más: Formularios en documentos HTML
fuente
Esto explica mejor: documentos de cartero
ACTUALIZAR
Como señaló VKK , la especificación WHATWG dice que urlencoded es el tipo de codificación predeterminado para formularios.
fuente
Content-Type: application/json
encabezado; y datos brutos ingresados como json como{foo: bar}
con el mismoContent-Type: application/json
encabezado?multipart / form-data
Nota. Consulte RFC2388 para obtener información adicional sobre la carga de archivos, incluidos los problemas de compatibilidad con versiones anteriores, la relación entre "multiparte / datos de formulario" y otros tipos de contenido, problemas de rendimiento, etc.
Consulte el apéndice para obtener información sobre problemas de seguridad para formularios.
El tipo de contenido "application / x-www-form-urlencoded" es ineficiente para enviar grandes cantidades de datos binarios o textos que contienen caracteres no ASCII. El tipo de contenido "multipart / form-data" debe usarse para enviar formularios que contienen archivos, datos no ASCII y datos binarios.
El tipo de contenido "multipart / form-data" sigue las reglas de todas las secuencias de datos MIME multiparte como se describe en RFC2045 . La definición de "multipart / form-data" está disponible en el registro [IANA].
Un mensaje "multipart / form-data" contiene una serie de partes, cada una de las cuales representa un control exitoso. Las partes se envían al agente de procesamiento en el mismo orden en que aparecen los controles correspondientes en la secuencia de documentos. Los límites de parte no deben ocurrir en ninguno de los datos; cómo se hace esto queda fuera del alcance de esta especificación.
Al igual que con todos los tipos MIME multiparte, cada parte tiene un encabezado opcional "Tipo de contenido" que por defecto es "texto / sin formato". Los agentes de usuario deben proporcionar el encabezado "Content-Type", acompañado de un parámetro "charset".
application / x-www-form-urlencoded
Este es el tipo de contenido predeterminado. Los formularios enviados con este tipo de contenido deben codificarse de la siguiente manera:
Los nombres y valores de control se escapan. Los caracteres de espacio se reemplazan por
+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
% HH ', un signo de porcentaje y dos dígitos hexadecimales que representan el código ASCII del carácter. Los saltos de línea se representan como pares "CR LF" (es decir,%0D%0A'). The control names/values are listed in the order they appear in the document. The name is separated from the value by
= 'y los pares de nombre / valor están separados entre sí por `&'.application/x-www-form-urlencoded
El cuerpo del mensaje HTTP enviado al servidor es esencialmente una cadena de consulta gigante: los pares de nombre / valor están separados por el signo y (&), y los nombres están separados de los valores por el símbolo de igual (=). Un ejemplo de esto sería:El tipo de contenido "application / x-www-form-urlencoded" es ineficiente para enviar grandes cantidades de datos binarios o textos que contienen caracteres no ASCII. El tipo de contenido "multipart / form-data" debe usarse para enviar formularios que contienen archivos, datos no ASCII y datos binarios.
fuente
Aquí hay algunos ejemplos suplementarios para ver el texto sin procesar que Postman pasa en la solicitud. Puede ver esto abriendo la consola Postman:
datos de formulario
Encabezamiento
Cuerpo
x-www-form-urlencoded
Encabezamiento
Cuerpo
Texto sin formato / sin formato
Encabezamiento
Cuerpo
Raw json
Encabezamiento
Cuerpo
fuente