Python使⽤requests发送POST请求实例代码
本⽂研究的主要是Python使⽤requests发送POST请求的相关内容,具体介绍如下。
⼀个http请求包括三个部分,为别为请求⾏,请求报头,消息主体,类似以下这样:
请求⾏
请求报头
消息主体
HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使⽤什么编码⽅式。服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是⽤何种⽅式进⾏编码,再对消息主体进⾏解析。具体的编码⽅式包括:application/x-www-form-urlencoded
最常见post提交数据的⽅式,以form表单形式提交数据。
application/json
以json串提交数据。
multipart/form-data
⼀般使⽤来上传⽂件。
2.7.1 以form形式发送post请求
Reqeusts⽀持以form表单形式发送post请求,只需要将请求的参数构造成⼀个字典,然后传给requests.post()的data参数即可。
url = '/post'
d = {'key1': 'value1', 'key2': 'value2'}
r = requests.post(url, data=d)
输出:
{
“args”: {},
“data”: “”,
“files”: {},
“form”: {
“key1”: “value1”,
“key2”: “value2”游戏源码网三端
},
“headers”: {
……
“Content-Type”: “application/x-www-form-urlencoded”,
新冠疫苗接种方案……
},
“json”: null,
……
}
可以看到,请求头中的Content-Type字段已设置为application/x-www-form-urlencoded,且d = {‘key1’: ‘value1’, ‘key2’:
‘value2’}以form表单的形式提交到服务端,服务端返回的form字段即是提交的数据。
2.7.2 以json形式发送post请求
可以将⼀json串传给requests.post()的data参数,
url = '/post'
s = json.dumps({'key1': 'value1', 'key2': 'value2'})
r = requests.post(url, data=s)
discuz qq登录获取unionid输出:
{
“args”: {},
“data”: “{\”key2\”: \”value2\”, \”key1\”: \”value1\”}”,
“files”: {},
“form”: {},
“headers”: {
……
python请求并解析json数据“Content-Type”: “application/json”,
……
},
“json”: {
“key1”: “value1”,
“key2”: “value2”
},
……
}
可以看到,请求头的Content-Type设置为application/json,并将s这个json串提交到服务端中。
2.7.3 以multipart形式发送post请求process writing
Requests也⽀持以multipart形式发送post请求,只需将⼀⽂件传给requests.post()的files参数即可。
url = '/post'
files = {'file': open('', 'rb')}
r = requests.post(url, files=files)
输出:
{
“args”: {},
“data”: “”,
“files”: {
“file”: “Hello world!”
},
“form”: {},
“headers”: {……
下拉框删除易下拉系统“Content-Type”: “multipart/form-data; boundary=467e443f4c3d403c8559e2ebd009bf4a”,
……
},
“json”: null,
……
⽂本⽂件的内容只有⼀⾏:Hello world!,从请求的响应结果可以看到数据已上传到服务端中。
总结
以上就是本⽂关于Python使⽤requests发送POST请求实例代码的全部内容,希望对⼤家有所帮助
内容就以上怎么多,最后给⼤家推荐⼀个⼝碑不错的【程序员学府】,这⾥有很多的⽼前辈学习技巧,学习⼼得,⾯试技巧,职场经历等分享,更为⼤家精⼼准备了零基础⼊门资料,实战项⽬资料,每天都有程序员定时讲解Python技术,分享⼀些学习的⽅法和需要留意的⼩细节
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论