Python接口自动化之浅析requests模块post请求
接下来介绍requests模块中的post请求的使用。
接下来介绍requests模块中的post请求的使用。
一、源码解析
1 2 3 4 5 6 7 8 9 10 11 12 |
|
post请求参数解析:
url:
请求的url,必填;
data:
选填,请求参数;
json:
选填,请求参数;
kwargs:
选填,可以传入headers、cookies等。
二、data、json区别
小伙伴们看完可能有点懵逼,data和json有啥区别呀,什么时候传入data,什么时候传入json。
举个栗子:
1 2 3 4 |
|
聪明的小伙伴立即抢答了,打印的是字典类型。
那如果想把字典转换为json字符串呢,需要引用json模块。
1 2 3 4 5 6 |
|
敲黑板:
- 不管json是str还是dict,如果不指定headers中的content-type,默认为application/json;
- data为dict时,如果不指定content-type,默认为application/x-www-form-urlencoded,相当于普通form表单提交的形式;
- data为str时,如果不指定content-type,默认为application/json。
重点来了,post请求参数到底是传data还是json,这时候我们要看请求头里的content-type类型(具体参照接口文档,没有接口文档的抓包)。
如果请求头中content-type为application/json, 为json形式,post请求使用json参数。
如果请求头中content-type为application/x-www-form-urlencoded,为表单形式,post请求时使用使用data参数。
三、form形式发送post请求
当前接口的请求类型为application/x-www-form-urlencoded。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
响应结果为:
{
"status": 1,
"code": "10001",
"data": null,
"msg": "登录成功"
}
四、json形式发送post请求
当前接口的请求类型为application/json。
1 2 3 4 5 6 7 8 9 10 11 |
|
响应结果为:
无响应???
问题来了,如果请求类型为application/json,我偏要传入data参数呢?
先按我们正常思维走一波:
1 2 3 4 5 6 |
|
响应结果:请求错误
{"code":400,"data":[],"message":"Input error"}
请求类型为application/json,如果想用data传参,需要将字典类型数据转换为json字符串
1 2 3 4 5 6 7 8 9 |
|
本文主要讲解post源码,data、json参数应用场景及实战。接口使用的本地服务,如果大家想练手,可以使用公司项目或网上项目自行实战。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)