request.ContentType = "application/json; charset=utf-8";
和
webRequest.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "application/json; charset=utf-8";
和
webRequest.ContentType = "application/x-www-form-urlencoded";
第一种情况是告诉Web服务器你正在发布JSON数据,例如:
{"Name": "John Smith", "Age": 23}
第二种情况是告诉Web服务器,您将在URL中对参数进行编码:Name=John+Smith&Age=23
x-www-form-urlencoded
。发送回的响应是JSON。我认为最好有一个对称的请求/响应对,即都是JSON。 - userwebRequest.ContentType = "application/x-www-form-urlencoded";
"application/x-www-form-urlencoded"这个名称从哪里来?
如果您发送HTTP GET请求,可以使用查询参数:
http://example.com/path/to/page
?name=ferret&color=purple
字段的内容被编码为查询字符串。"application/x-www-form-urlencoded"的名称源于上面的url查询参数,但查询参数位于请求体而不是url中。
整个表单数据作为一个长查询字符串发送。查询字符串包含用"&"字符分隔的"name-value"对
例如: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主体。
{
"id": 1,
"name": "Foo",
"price": 123,
"tags": [
"Bar",
"Eek"
],
"stock": {
"warehouse": 300,
"retail": 20
}
}
两者之间最大的差异之一是,以JSON编码的帖子通常会保留发送的值的数据类型(只要它们是有效的JSON数据类型),而application/x-www-form-urlencoded通常会将所有属性转换为字符串。
例如,在以下JSON编码的帖子中:
{"Name": "John Smith", "Age": 23}
Name=John+Smith&Age=23
服务器很可能会将Age解析为字符串"23"。
当然,如果你使用其他层来解析这些值并将它们转换为适当的类型,那么这可能不是一个问题。