python中requests库的用途-python中requests库session对象的妙用详解
在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息。
妙用1
requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies。
举个栗子,跨请求保持cookies,在命令行上输入下面命令:
# 创建一个session对象
s = requests.Session()
# 用session对象发出get请求,设置cookies
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
# 用session对象发出另外一个get请求,获取cookies
r = s.get("http://httpbin.org/cookies")
# 显示结果
r.text
'{"cookies": {"sessioncookie": "123456789"}}'
妙用2
requests库的session对象还能为我们提供请求方法的缺省数据,通过设置session对象的属性来实现。
举个栗子,设置请求的auth和headers默认的缺省参数:
# 创建一个session对象
s = requests.Session()
# 设置session对象的auth属性,用来作为请求的默认参数
s.auth = ('user', 'pass')
# 设置session的headers属性,通过update方法,将其余请求方法中的headers属性合并起来作为最终的请求方法的headers
s.headers.update({'x-test': 'true'})
# 发送请求,这里没有设置auth会默认使用session对象的auth属性,这里的headers属性会与session对象的headers属性合并
r = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})
# 查看发送请求的请求头
r.request.headers
得到的请求头部是这样的:
{'Authorization': 'Basic dXNlcjpwYXNz', 'x-test': 'false'}
注意1:方法层的参数覆盖会话的参数,举个栗子:
将上面的请求中加上auth参数:
r = s.get('http://httpbin.org/headers', auth=('user','hah'), headers={'x-test2': 'true'})
获取该请求的请求头
{'Authorization': 'Basic dXNlcjpoYWg=', 'x-test': 'false'}
我们发现,请求方法中的Authorization变化了,也就是说方法层的参数覆盖了session的属性。
注意2:在request请求中,省略session对象中设置的属性,只需简单地在方法层参数中将那个键的值设置为 None ,那个键就会被自动省略掉。
再举个栗子:
TBD
总结
以上就是本文关于python中requests库session对象的妙用详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python面向对象编程基础解析(一)、13个最常用的Python深度学习库介绍等,有什么问题可以随时留言,小编会及时回复大家的。
python中requests库的用途-python中requests库session对象的妙用详解相关推荐
- python中session的使用方法_python中requests库session对象的妙用详解
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一. 引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...
- [Python从零到壹] 四十七.图像增强及运算篇之腐蚀和膨胀详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- python整数池_对Python中小整数对象池和大整数对象池的使用详解
1. 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 256] 这些整数对象是提 ...
- java 组合对象_Java 中组合模型之对象结构模式的详解
Java 中组合模型之对象结构模式的详解 一.意图 将对象组合成树形结构以表示"部分-整体"的层次结构.Composite使得用户对单个对象和组合对象的使用具有一致性. 二.适用性 ...
- JAVA中的类和对象之this的详解
系列文章目录 第一章 JAVA中的类和对象之this的详解 目录 前言 一.为什么要有this引用 二.this的三种用法 1.this.成员变量 2.this.成员方法 3.this()调用其它的构 ...
- python中requests库的用途-python中requests.session的妙用
在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 1.requests库的session对象能够帮我们跨请求保持某些参数,也会在 ...
- Python中的yield关键字及表达式、生成器、生成器迭代器、生成器表达式详解
文章目录 1. yield关键字及表达式.生成器.生成器迭代器.生成器表达式 1.1 yield关键字及表达式(yield expression) 1.1.1 yield关键字 1.1.2 yield ...
- python中可变参数*args传入函数时的存储方式为_python 中文读法详解Python函数可变参数定义及其参数传递方式...
Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args) 传入的参数为以元组形式存在args中,如: def func(*args): ...
最新文章
- 2021-07-30 自己垃圾场景数据集训练Bisenet网络
- leetcode 235. Lowest Common Ancestor of a Binary Search Tree | 235. 二叉搜索树的最近公共祖先(哈希表)
- [Java基础]自然排序Comparable的使用
- 书摘:35岁之前成功的12条黄金法则
- 机器学习-吴恩达-笔记-2-逻辑回归
- TensorFlow 2.0官方风格与设计模式指南
- 小学计算机期末评价方案,小学班级管理评价方案
- ncbi查找目的基因序列_如何用NCBI和uniprot数据库查找目的蛋白的氨基酸序列或目的基因的碱基序列...
- rtl8812bu网卡Linux驱动,Linux 安装 RTL8812AU 无线 USB 网卡驱动
- 深入理解WKWebView白屏
- Embodied Question Answering导读
- hadoop jar xxxx.jar 执行的流程
- java基础测试大集合 今天收罗精选一下Java题 适合小白挑战和新手回顾
- 物联网中射频技术的应用
- VMware : 处理器数量和每个处理器的核心数量
- 淘宝/天猫API接口,买家卖家订单信息获取
- 向日葵公主与驴的寓言故事
- 计算几何之用叉乘求多边形面积
- 查看linux文件工具,Linux基础命令-文本文件查看工具
- java 联系电话/证件号码脱敏处理
热门文章
- 简陋的会计凭证金额输入控件
- 数据挖掘技术简介[转]
- selenium环境搭建1
- FMS4.5( Adobe Flash Media Server4.5)流媒体服务器搭建
- 成功计算出文本类单词的概率
- iBatis学习网站推荐
- wcf服务和寄主的关系
- enum2str做为queryValue时的问题
- python从入门到精通pdf百度云下载-跟老齐学Python从入门到精通 电子版(pdf格式)...
- 最适合python程序员用的笔记本-作为一个Python程序员,电脑上应该具备哪些软件?...