热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关闭ssl验证_Requests库(九)准备的请求和SSL证书验证

由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标⭐,你就可以第一时间接收到本公众号的推送!Requests库分享

93067f90249633a4e80c9deff5b96541.png

         由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ⭐,你就可以第一时间接收到本公众号的推送!

    Requests库分享系列:

             Requests库(一)

             Requests库(二)

             Requests库(三)如何获取接口传参参数

             Requests库(四)如何传递不一样的参数

             Requests库(五)接口返回状态码

             Requests库(六)接口返回响应头和请求COOKIEs

             Requests库(七)重定向和超时

             Requests(八)代理和会话对象


        一个 Response 对象时,request 属性其实是使用了 PreparedRequest。有时在发送请求之前,你需要对 body 或者 header

s = Session()req = Request('GET', url, data=data, headers=header)prepped = req.prepare()# do something with prepped.body# do something with prepped.headersresp = s.send(prepped, stream=stream, verify=verify, proxies=proxies, cert=cert, timeout=timeout)print(resp.status_code)

        由于你没有对 Request 对象做什么特殊事情,你立即准备和修改了 PreparedRequest 对象,然后把它和别的参数一起发送到 requests.* 或者 Session.*。

    然而,上述代码会失去 Requests Session 对象的一些优势, 尤其 Session 级别的状态,例如 COOKIE 就不会被应用到你的请求上去。要获取一个带有状态的 PreparedRequest, 请用 Session.prepare_request() 取代 Request.prepare() 的调用,如下所示:

from requests import Request, Sessions = Session()req = Request('GET', url, data=data    headers=headers)prepped = s.prepare_request(req)# do something with prepped.body# do something with prepped.headersresp = s.send(prepped,stream=stream, verify=verify, proxies=proxies, cert=cert, timeout=timeout) print(resp.status_code)


        SSL 证书验证

       我们在请求的时候,https的协议需要校验证书,requests请求默认ssl的证书是开启的。

         如果不加证书会导致请求报错的。看下如下的示例

import requestsr=requests.get('https://www.github.com')print(r.status_code)

        有可能会出现requests.exceptions.SSLError。所以我们在请求的时候,可以关闭https的验证。

r=requests.get('https://www.github.com/',verify=False)print(r.status_code)

     当然了我们可以还可以在verify传递本机校验的证书

你可以为 verify 传入 CA_BUNDLE 文件的路径,或者包含可信任 CA 证书文件的文件夹路径:

        示例如下:

requests.get('https://github.com', verify='/users/leizi/certfile')

将其保持在会话中:

s = requests.Session()s.verify = '/users/leizi/certfile'

        所以我们在请求https的协议的网站,如果校验证书,我们要传递对应的证书的。现在很多网站 会默认跟你重定向到https或者一些浏览器都会默认了,我们在接口测试的时候,还是要注意下的。https协议的接口的安全性毕竟比较高。现在很多网站都已经支持https协议的请求了。当然我们一般在测试服还是http协议的比较多。这里给大家分析下如何使用。大家用到的时候可以快速上手。


如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~

72ab2002c0ed44420417570020167758.gif




推荐阅读
author-avatar
可可1994棒_241
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有