Pri*_*wal 132 json web-services http-headers
有什么区别
request.ContentType ="application/json; charset = utf-8";
和
webRequest.ContentType ="application/x-www-form-urlencoded";
Ica*_*rus 158
第一种情况是告诉Web服务器您正在发布JSON数据,如下所示:
{ Name : 'John Smith', Age: 23}
Run Code Online (Sandbox Code Playgroud)
第二个选项是告诉Web服务器您将在URL中对参数进行编码,如下所示:
Name=John+Smith&Age=23
Run Code Online (Sandbox Code Playgroud)
fgu*_*gul 24
webRequest.ContentType = "application/x-www-form-urlencoded";
哪里应用程序/ x-WWW的形式了urlencoded的名字从何而来?
如果您发送 HTTP GET请求,您可以使用如下查询参数:
http://example.com/path/to/page
?name=ferret&color=purple
字段的内容被编码为查询字符串。该application/x-www-form-
urlencoded
的名字来自于以前的网址查询参数,但查询参数是在请求的主体中,而不是网址。
整个表单数据作为一个长查询字符串发送。查询字符串包含由&字符分隔的名称-值对
例如 field1=value1&field2=value2
它可以是简单的请求,称为 simple -不要触发预检
简单的请求必须有一些属性。你可以在这里查看更多信息。其中之一是对于简单请求的 Content-Type 标头只允许三个值
3.对于大多数扁平参数树,application/x-www-form-urlencoded 已经过尝试和测试。
request.ContentType = "application/json; charset=utf-8";
axios和superagent是两个比较流行的 npm HTTP 库,默认使用 JSON 主体。
Run Code Online (Sandbox Code Playgroud){ "id": 1, "name": "Foo", "price": 123, "tags": [ "Bar", "Eek" ], "stock": { "warehouse": 300, "retail": 20 } }
现在,如果请求不是简单的 request,浏览器会通过OPTIONS方法自动在原始请求之前发送一个 HTTP 请求,以检查发送原始请求是否安全。如果没问题,则发送实际请求。你可以在这里查看更多信息。
两者之间最大的区别之一是 JSON 编码的帖子通常会保留发送的值的数据类型(只要它们是有效的 JSON 数据类型),而 application/x-www-form-urlencoded 通常会保留将所有属性转换为字符串。
例如,在 JSON 编码的帖子中:
{"Name": "John Smith", "Age": 23}
Run Code Online (Sandbox Code Playgroud)
服务器很可能会将 Age 属性解析为整数 23。
而在
Name=John+Smith&Age=23
Run Code Online (Sandbox Code Playgroud)
服务器很可能会将 Age 解析为字符串“23”。
当然,如果您使用其他层来解析这些值并将它们转换为适当的类型,这可能不是问题。
归档时间: |
|
查看次数: |
72490 次 |
最近记录: |