Python API 自动化 Requests 库详解

函数原型

def requests.get(url, params=None, **kwargs):
def requests.post(url, data=None, json=None, **kwargs):
def requests.post(url, headers=head, files=files) #上传文件 -->files实际上是一个二进制流

函数解释

requests.get() url是接口地址, params 用于传参
requests.post() url是接口地址, data 用于传参, json 也适用于传参

那么data 和 json 两种传参有什么区别了?

主要是通过请求头Content-Type来区分,Content-Type作用是服务器要求传入的报文的内容类型。

请求 = 请求方式+请求路径+请求头+请求正文 组成

常用的四种传参方式对应的Content-Type的几种取值如下:

1.form-data: Content-Type:multipart/form-data;boundary=<calculated when request is sent>
2.x-www-from-urlencoded: Content-Type:application/x-www-form-urlencoded
3.raw:
   text: Content-Type:text/plain
   javascript: Content-Type:application/javascript
   json: Content-Type:application/json
   html: Content-Type:text/html
   xml: Content-Type:application/xml
4.binary:  Content-Type:application/binary

data 和 json 传参以及 Content-Type 的关系

data 传参,报文如果是dict类型,那么默认Content-Type:application/x-www-form-urlencoded

data传参,报文如果是str类型,那么默认Content-Type:text/plain

json传参,报文如果是dict类型,那么默认Content-Type:application/json

json传参,报文如果是str类型,那么默认Content-Type:application/json

转换函数

json.loads() 函数能把 json 字符串转化成 dict 格式
json.dumps() 函数能把 dict 格式转化成 json 字符串

小结

无论是json或str还是dict,如果不指定headers中的content-type,默认为 application/json

在Python里面json是dict的样式,是字符串的类型

data可以传纯键值对的dict(非嵌套的dict),也可以传入str格式,如果是嵌套字典那么就要使用json.dumps()把嵌套字典转化成json字符串的形式来传参

json可以传任何形式的dict(包括嵌套的dict)

通过request.post方法上传文件的请求示例:

files = {'files': ('test.png', open('文件地址', 'rb'), 'application/octet-stream', {'Expires': '0'})}

files = {'file': (文件名, open('文件地址', 'rb'), 'application/json')}

 

总结

外行对于程序员的认知很单一,也有很多刻板印象,但不管如何,作为测试人员的我们,自己一定要正视自己。如果我们连自嘲和自卑都分不清楚了,那发展也就仅限如此了。

所以,尽早规划自己,朝目标发展,才是上策之道,而不是怨天尤人,等到 30 岁后再去焦虑。

在企业你如果不想成为“工具人”,就不要停下成长的步伐,打造属于自己的独特价值,具备不可替代的稀缺属性,这样才能不被淘汰,也能够在遭遇变化时,随自己所愿进行选择。

下面是你需要的资料吗!

↓↓

图片

 ❤学习安排上❤

 如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以加入我们,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值