application / json和application / x-www-form-urlencoded中的差异

时间:2012-03-26 10:31:48

标签: json web-services http-headers

之间有什么区别
  

request.ContentType =“application / json; charset = utf-8”;

  

webRequest.ContentType =“application / x-www-form-urlencoded”;

3 个答案:

答案 0 :(得分:136)

第一种情况是告诉Web服务器您正在发布JSON数据,如下所示:

{ Name : 'John Smith', Age: 23}

第二个选项是告诉Web服务器您将在URL中对参数进行编码,如下所示:

Name=John+Smith&Age=23

答案 1 :(得分:17)

webRequest.ContentType =“ application / x-www-form-urlencoded”;

  1. application / x-www-form-urlencoded 的名称来自何处?

    如果发送HTTP GET 请求,则可以使用查询参数,如下所示:

    http://example.com/path/to/page ?name = ferret&color = purple

    字段的内容被编码为查询字符串。 application/x-www-form- urlencoded的名称来自先前的url查询参数,但查询参数为 在请求正文而不是网址中。

    整个表格数据以长查询字符串形式发送。查询字符串包含 name- 值对,用字符

    分隔

    例如field1 = value1&field2 = value2

  2. 它可以是简单请求,称为简单-不要触发飞行前检查

    简单请求必须具有一些属性。您可以查看here了解更多信息。之一 它们是Content-Type标头只允许三个值 请求

    • 应用程序/ x-www-form-urlencoded
    • multipart / form-data
    • 文本/纯文本

3。对于大多数平面参数树,尝试并测试了application / x-www-form-urlencoded。

request.ContentType =“ application / json; charset = utf-8”;

  1. 数据将为json格式。
默认情况下,

axios superagent (两个最受欢迎的npm HTTP库)可以使用JSON正文。

{
  "id": 1,
  "name": "Foo",
  "price": 123,
  "tags": [
    "Bar",
    "Eek"
  ],
  "stock": {
    "warehouse": 300,
    "retail": 20
  }
}
  1. “应用程序/ json” 内容类型是已请求的请求之一

现在,如果请求不是简单请求,浏览器会通过 OPTIONS 方法自动在原始请求之前发送HTTP请求,以检查发送是否安全原始请求。如果可以,则发送实际请求。您可以在here中查找更多信息。

  1. application / json 是初学者友好的。 URL编码的数组可能是一场噩梦!

答案 2 :(得分:0)

JavaScript对象表示法(JSON)的应用程序/ json媒体类型    
JavaScript对象表示法(JSON)是用于 结构化数据的序列化。它是从对象派生的  JavaScript的文字,如ECMAScript编程中所定义  语言标准,第三版 [ECMA]  
JSON可以代表四种原始类型(字符串,数字,布尔值,  和null)和两种结构化类型(对象和数组)。 More...


表单的编码类型由属性enctype确定:
应用程序/ x-www-form-urlencoded -表示URL编码的表单。这是  如果enctype属性未设置为任何值,则为默认值。
multipart / form-data -表示一个多部分表单。这种形式的表格在  用户想要上传文件  
文本/纯文本-顾名思义,HTML5中引入了一种新的表单类型  只需发送数据而无需任何编码。 Here is the rest of the good article about this