requests--会话对象,ssl验证
会话对象
前面我们使用了添加cookie的方式来进行接口的访问,如果有几十个接口都要依赖登录,难道我们都要加上吗?
Request的会话对象让你能够跨请求保持某些参数,它也会在同一请求Session实例发出的所有请求之间保持Cookie
import requests base_url = 'http://httpbin.org'
s = requests.Session() # 设置Cookie r = s.get(base_url + '/cookies/set/user/zou')
print(r.text) r = s.get(base_url + '/cookies')
print(r.text)
结果:
{
"cookies": {
"user": "zou"
}
}
{
"cookies": {
"user": "zou"
}
}
所以利用Session我们可以做到模拟同一个会话,而且不用担心Cookie的问题,通常用于模拟登录成功后再进行下一步的操作
SSL验证
Requests 可以为 HTTPS 请求验证 SSL 证书,就像 web 浏览器一样。SSL 验证默认是开启的,如果证书验证失败,Requests 会抛出 SSLError,类似与下面这样
requests.get('https://requestb.in')
requests.exceptions.SSLError: hostname 'requestb.in' doesn't match either of '*.herok
如果不想验证SSL则可以使用verify参数关闭验证SSL
import requests # 关闭SSL验证
r = requests.get('https://www.12306.cn', verify=False)
print(r.text)
你可以为 verify 传入 CA_BUNDLE 文件的路径,或者包含可信任 CA 证书文件的文件夹路径:
import requests
requests.get('https://github.com', verify='/path/to/certfile')
或者将其保持在会话中:
s = requests.Session()
s.verify = '/path/to/certfile'
如果 verify 设为文件夹路径,文件夹必须通过 OpenSSL 提供的 c_rehash 工具处理。
报错处理
在python3中使用以下代码报错:
requests.get(url, verify=False)
报错信息如下
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
解决方法一
加上如下代码
requests.packages.urllib3.disable_warnings()
解决方法二
加如下代码
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
requests--会话对象,ssl验证的更多相关文章
- python requests 请求禁用SSL警告信息解决
Python3 requests模块发送HTTPS请求,关闭SSL 验证,控制台会输出以下错误: InsecureRequestWarning: Unverified HTTPS request is ...
- 爬虫代理及ssl验证
IP代理:import requests url='https://weibo.com/' proxies={ 'http':'116.196.66.197:99999' } # 此处的proxies ...
- 关于python requests 包跑ssl的设置 和 charles相关抓包的问题
由于在测试服务器上测试东西都是https,然后最近又在和大神一起开发openapi,api写好当然是要测试的 python上测试接口最好用的莫过于requests模块了.但是 我还从来没有用reque ...
- php获取ssl验证的https页面的源码
$response = "https://faculty.xidian.edu.cn/system/resource/tsites/tsitesencrypt.jsp?id=_tsites_ ...
- Python Requests-学习笔记(10)-会话对象
会话对象让你能够跨请求保持某些参数.它也会在同一个Session实例发出的所有请求之间保持cookies. 会话对象具有主要的Requests API的所有方法. 我们来跨请求保持一些cookies: ...
- C#POP3协议实现SSL验证登陆GMAIL
最近在折腾POP3协议,登陆pop.qq.com和pop.163.com没有什么问题,于是就想着登陆pop.gmail.com,结果失败了.经查,发现gmail的pop3端口不是110,而是995.于 ...
- 标准会话对象——StandardSession
Tomcat使用了一个StandardSession对象用来表示标准的会话结构,用来封装需要存储的状态信息.标准会话对象StandardSession实现了Session.Serializable.H ...
- 增量会话对象——DeltaSession
在集群环境中为了使集群中各个节点的会话状态都同步,同步操作是集群重点解决的问题,一般来说有两种同步策略,其一是每次同步都把整个会话对象传给集群中其他节点,其他节点更新整个会话对象:其二是对会话中增量修 ...
- Node.js_express_临时会话对象 session
临时会话对象 session 也是用来 解决 http 无状态协议的问题(无法区分多次请求是否发送自同一客户端) npm install express-session npm install con ...
随机推荐
- 当usbnet打印 kevent * may have been dropped(转)
http://patchwork.ozlabs.org/patch/815639/ Every once in a while when my system is under a bit of str ...
- Linux学习 (2) CentOS 6 虚拟机挂载磁盘
1.我们先创建1台CentOS 6.10的虚拟机 2.使用SSH登陆CentOS虚拟机,运行下面的命令: sudo tail -f /var/log/messages ls -l /dev/sd* 可 ...
- jQuery 源码分析(五) map函数 $.map和$.fn.map函数 详解
$.map() 函数用于使用指定函数处理数组中的每个元素(或对象的每个属性),并将处理结果封装为新的数组返回,该函数有三个参数,如下: elems Array/Object类型 指定的需要处理的数组或 ...
- Spring Boot +Bootstrap 图片上传与下载,以及在bootstrap-table中的显示
1.前台上传: <input type="file" name="file" id="file"> 2.后台的接收与处理: St ...
- Kubernetes 中的服务发现与负载均衡
原文:https://www.infoq.cn/article/rEzx9X598W60svbli9aK (本文转载自阿里巴巴云原生微信公众号(ID:Alicloudnative)) 一.需求来源 为 ...
- C 输入和输出、char类型
参考链接:https://www.runoob.com/cprogramming/c-input-output.html 标准输入输出头文件stdio.h #include是一个预处理指令,用于引入s ...
- xshell使用zmodem拖拽上传
一.目的 windows向centos_linux服务器上传文件可以用ftp上传,但是没zmodem方便,zmodem拖拽上传,可以上传到指定的目录下. 二.安装使用 执行下面的命令安装后就可以使用了 ...
- .Net 高级 模拟事件模型
第一步:创建一个类,并继承:IHttpModule using System; using System.Collections.Generic; using System.Linq; using S ...
- gsoap工具生成wsdl接口 注意事项
wsdl是通过wsdl文件作为不同应用的通信接口,所以如何生成wsdl语言很重要,但是很多时候我们发现自己编写的头文件通过gsoap工具soapcpp2.exe从头文件中无法正常生成对应的wsdl语言 ...
- js 设计模式——代理模式
代理模式 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问. 生活中有很多的代理模式的场景.例如,明星有经纪人作为代理,老板有秘书作为代理等等,当有事情的时候,会找到经纪人或秘书,再由他 ...