python中post请求,传参方式为json与data

废话不多说,直接开干!

最近做项目遇到post请求问题,开始可以拿到数据,后来就不行了,纠结啊!

在这里插入图片描述

于是乎找找方法,先来补充知识点

1、GET是通过URL方式请求,可以直接看到,明文传输。
2、POST是通过请求header请求,可以开发者工具或者抓包可以看到,同样也是明文的。 
3.GET请求会保存在浏览器历史纪录中,还可能会保存在Web的日志中。

大概了解get,post请求问题,接下来细细看

Reqeusts支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给requests.post()的data参数即可。
1、data为dict时,如果不指定content-type,默认为application/x-www-form-urlencoded,相当于普通form表单提交的形式
2、data为str时,如果不指定content-type,默认为text/plain
3、json为dict时,如果不指定content-type,默认为application/json
4、json为str时,如果不指定content-type,默认为application/json

解析下

dict() 函数用于创建一个字典
text/plain 文本形式
application/json  作为请求头告诉服务端消息主体是序列化的JSON字符串。除低版本的IE,基本都支持

额外充电一下相关知识

在这里插入图片描述

application/x-www-form-urlencoded	在发送前编码所有字符(默认)
multipart/form-data	不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
application/json	作为请求头告诉服务端消息主体是序列化的JSON字符串。除低版本的IE,基本都支持。
text/plain	空格转换为 “+” 加号,但不对特殊字符编码。

总结:之前post请求用可以拿到数据,后来就不行了

da = requests.post(url=url, headers=headers, json=jdata, verify=False).text

然后替换一下,就可以拿到数据了

da = requests.post(url=url, headers=headers, data=jdata, verify=False).text

感谢大佬们观看!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值