POST请求发送的表单数据和json数据的区别及python代码实现前⾔
这篇博客会介绍最常见post 请求form表单数据和json数据
数据类型之间的区别,
urllib代码的实现(python),
requests库实现,
以及如何使⽤postman软件发送这些类型数据
数据类型
这⾥说⼀个重要的请求头的参数 Content-Type
这个请求头中的参数的作⽤就是 后端会根据这个字段来解析你提交过去的数据类型,所以代码请求的时候的时候最好将这个字段填写(postman会根据你写⼊的数据类型⾃动填写)
1.表单数据
Content-Type: application/x-www-form-urlencoded
简介:这种数据类型是最常见的,html不依靠js就可以简单实现⼀个简单的form表单数据提交
数据格式:a=1&b=2
代码实现:
import urllib.parse
quest
url ="/post"
data = {
"a":"1",
"b":"2",
}vb课程讲解
data = urllib.parse.urlencode(data).encode()
req = quest.Request(url,data=data,method='POST')shell脚本写双球
# req.add_header("Content-Type","application/x-www-form-urlencoded") #这⾥我将添加请求头信息注释也可请求成功,因为默认解析就是表单数据
response = quest.urlopen(req)
ad().decode())
这⾥我⽤的是python原⽣的⽹络请求库,⽤这种较为底层的代码演⽰这个例⼦,才能更好的说明提交的数据类型差异
注意:
1.经过urllib.parse.urlencode(data)这个函数转换可以将字典的数据类型转换为a=1&b=2
2.所有的post请求提交的数据类型都是字节型数据,也就是要经过encode()
postman提交:
切换到 headers 分栏⾥⾯可以看到值已经⾃动填写了
跟我们前⾯讲的⼀致
requests库代码简单实现:
import requests
url ="/post"
data = {
"a":"1",
"b":"2",
}
response = requests.post(url,data=data)
)
2.json数据
Content-Type: application/json
简介: json数据是js中的⼀个概念,本质其实就是字符串,只不过这个字符串的内容类似于python中的字典,也是键值对的格式
数据格式:'{"a":"1","b":"2"}'
代码实现:
import urllib.parse
quest
propertychangedeventhandlerimport jsonpython请求并解析json数据
url ="/post"
data = {
"a":"1",
"b":"2",
}
data = json.dumps(data).encode()
req = quest.Request(url,data=data,method='POST')
req.add_header("Content-Type","application/json") #这⾥就必须填写了,不填写后端不会按照json去解析
response = quest.urlopen(req)
ad().decode())
编程软件下载是要钱的吗这⾥提交的也可以直接提交字符串(你写的必须是标准的json字符串),不过也是需要encode的,这⾥我传递⼀个字典,通过json.dumps将字典转换成⼀个标准的json字符串
注意:
1.需要加⼊Content-Type请求头参数,告诉后端这是⼀个json 数据类型
postman提交:
这⾥简单说⼀下这个postman这个 raw提交,其实你只要知道各种数据类型格式 以及对应的Content-Type格式,⽆论form表单数据还是json字符串数据都可以通过raw这个项来提交
3m口罩可以防病毒吗⽐如提交form表单形式,你可以在⾥⾯写a=1&b=2,然后将Content-Type改为application/x-www-form-urlencoded然后提交,(其实下拉栏⾥⾯的text,json,html,xml作⽤就是判断你输⼊的数据类型是否合法还有⾃动设置Content-Type)
requests库代码简单实现:
import requests
url ="/post"
data = {
"a":"1",
"b":"2",
}
response = requests.post(url,json=data)
)
不的不说 requests库是真的⽅便,只需要更改⼀个参数就可以将发送的数据类型由表单数据变为json,但是正是因为⽅便,很多⼈都不知道这个库背后做了多少复杂的⼯作,也不知道json的数据类型和form表单数据类型的区别

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。