Cuál es la diferencia entre
request.ContentType = "application / json; charset = utf-8";
y
webRequest.ContentType = "application / x-www-form-urlencoded";
Cuál es la diferencia entre
request.ContentType = "application / json; charset = utf-8";
y
webRequest.ContentType = "application / x-www-form-urlencoded";
Respuestas:
El primer caso es decirle al servidor web que está publicando datos JSON como en:
{ Name : 'John Smith', Age: 23}
La segunda opción es decirle al servidor web que codificará los parámetros en la URL como en:
Name=John+Smith&Age=23
application/x-www-form-urlencoded
confundiría al servidor (Elixir usando Poison en mi caso) y daría lugar a un análisis inapropiado del objeto (de alguna manera convirtió la matriz anidada de objetos a un mapa, en lugar de una lista). Usar application/json
debería ser la opción correcta en este caso.
webRequest.ContentType = "application / x-www-form-urlencoded";
Donde hace viene el nombre de application / x-www-form-urlencoded ?
Si envía HTTP GET solicitud , puede usar los parámetros de consulta de la siguiente manera:
http://example.com/path/to/page
? name = hurón & color = violeta
El contenido de los campos está codificado como una cadena de consulta. losapplication/x-www-form-
urlencoded
nombre del 's proviene del parámetro de consulta de url anterior, pero los parámetros de consulta están en el cuerpo de la solicitud en lugar de la url.
Todos los datos del formulario se envían como una cadena de consulta larga. La cadena de consulta contiene pares de nombre-valor separados por & carácter
por ejemplo, campo1 = valor1 y campo2 = valor2
Puede ser simple solicitud llamada simple - no active una verificación previa
La solicitud simple debe tener algunas propiedades. Puedes mirar aquí para más información. Una de ellas es que solo hay tres valores permitidos para el encabezado Content-Type para solicitudes simples
3.Para árboles paramáticos en su mayoría planos, se prueba y prueba application / x-www-form-urlencoded
request.ContentType = "application / json; charset = utf-8";
axios y superagent , dos de las bibliotecas HTTP npm más populares, funcionan con cuerpos JSON de forma predeterminada.
{ "id": 1, "name": "Foo", "price": 123, "tags": [ "Bar", "Eek" ], "stock": { "warehouse": 300, "retail": 20 } }
Ahora, si la solicitud no es simple , el navegador envía automáticamente una solicitud HTTP antes que la original por el método OPTIONS para verificar si es seguro enviar la solicitud original. Si está bien, envíe una solicitud real. Puedes mirar aquí para más información.
x-www-form-urlencoded
para solicitudes AJAX como voto, etc. La respuesta enviada de vuelta esJSON
. Creo que es mejor tener un par simétrico de solicitud / respuesta, es decir, ambos JSON.