由于在测试服务器上测试东西都是https,然后最近又在和大神一起开发openapi,api写好当然是要测试的

python上测试接口最好用的莫过于requests模块了。但是 我还从来没有用requests模块过ssl 在网上找了一些资料看到说的是,使用一个urllib3的模块。

好吧进入正题。

r = requests.post(url, data=payload, proxies=proxies, verify=True)

这行代码 增加了两个平时不怎么用得上的字段。 proxies 和 verify 。 proxies 一会儿介绍 verify 是requests包是对目标网站启用证书验证的选项。这里

摘抄文档里的相关内容。

SSL Cert Verification
Requests can verify SSL certificates for HTTPS requests, just like a web browser. To check a host’s SSL certificate, you can use the verify argument: >>> requests.get('https://kennethreitz.com', verify=True)
requests.exceptions.SSLError: hostname 'kennethreitz.com' doesn't match either of '*.herokuapp.com', 'herokuapp.com'
I don’t have SSL setup on this domain, so it fails. Excellent. GitHub does though: >>> requests.get('https://github.com', verify=True)
<Response [200]>
You can pass verify the path to a CA_BUNDLE file or directory with certificates of trusted CAs: >>> requests.get('https://github.com', verify='/path/to/certfile')
This list of trusted CAs can also be specified through the REQUESTS_CA_BUNDLE environment variable. Requests can also ignore verifying the SSL certificate if you set verify to False. >>> requests.get('https://kennethreitz.com', verify=False)
<Response [200]>
By default, verify is set to True. Option verify only applies to host certs. You can also specify a local cert to use as client side certificate, as a single file (containing the private key and the certificate) or as a tuple of both file’s path: >>> requests.get('https://kennethreitz.com', cert=('/path/server.crt', '/path/key'))
<Response [200]>
If you specify a wrong path or an invalid cert: >>> requests.get('https://kennethreitz.com', cert='/wrong_path/server.pem')
SSLError: [Errno 336265225] _ssl.c:347: error:140B0009:SSL routines:SSL_CTX_

官网提供了这些用法使用 里面包括在 电脑上已经安装了受信证书,直接使用verify=True进行设置 就能正常访问ssl 以及没有安装相应证书 需要对该字段进行路径指定。以及直接将verify=False 不进行校验。

这里由于我的电脑上是有公司的测试服务器证书的,所以要进行ssl校验只需要将verify字段置为True就可以正常请求和访问了。这里有个问题要特别注意一下,也是我遇到的问题,因为当时我使用requests这个包比较早。所以当时pip install下载的还是一个1.x的版本,这个版本的ssl校验就有点问题。建议大家在使用之前先将模块更新到最新的版本再进行操作。避免不必要的错误。

好了 到了这里还没完,由于api请求最大的问题就是调试。所以抓包当然是必不可少。在更新了新版的requests之后,charles是没有办法抓到requests包的。他就着么莫名其妙从charles的监听下面溜走了。 这里就需要设置requests的代理,将http 和https的代理字段都指向charles的代理地址 默认是 本地的8888端口 然后将这个字段传给proxies  

proxies = {
"http": "localhost:8888",
"https": "localhost:8888",
}

就可以正常请求了! 这里要抓去https的包 还需要配置charles证书 就不在这里介绍了。 可能有时间再单独开一篇来写。

关于python requests 包跑ssl的设置 和 charles相关抓包的问题的更多相关文章

  1. 【答疑解惑】为什么你的 Charles 会抓包失败?

    作为一名 Web 开发工程师,天天都会和网络打交道.Charles 作为一款网络抓包工具,几乎成了 Web 开发的标配. 本文是我深度使用 Charles 后总结而成,不同于其它介绍 Charles ...

  2. Charles 手机抓包

    Charles 手机抓包 请求抓包对于程序员调试代码必不可少,Charles是一个用与抓包的好工具(也可以使用Fiddler),Charles抓包是通过中间人代理实现,在客户端和服务端通信时,Char ...

  3. vue-cli建立的项目如何在手机端运行以及如何用charles来抓包

    刚开始自己在config文件夹下的index.js中的dev下的host写成的是localhost,但是发现自己不能在手机端访问,并且也不可以在charles进行抓包处理,后来把localhost改成 ...

  4. Mac上安装Charles进行抓包全流程设置

    安装 -- 官网下载最新版的Charles版本,按照提示安装即可 破解 -- https://blog.csdn.net/qq_25821067/article/details/79848589. M ...

  5. Python爬虫-02:HTTPS请求与响应,以及抓包工具Fiddler的使用

    目录 1. HTTP和HTTPS 1.1. HTTP的请求和响应流程:打开一个网页的过程 1.2. URL 2. 客户端HTTP请求 3. Fiddler抓包工具的使用 3.1. 工作原理 3.2. ...

  6. Charles 手机抓包HTTPS设置以及证书安装

    本文参考:charles 抓包手机 charles经常会进行手机上的网页抓包,比如去copy别人网站图片或脚本的时候o(∩_∩)o : 手机抓包的原理,和PC类似,手机依靠charles与服务端进行对 ...

  7. charles 手机抓包设置

    本文参考:charles 抓包手机 charles经常会进行手机上的网页抓包,比如去copy别人网站图片或脚本的时候o(∩_∩)o : 手机抓包的原理,和PC类似,手机依靠charles与服务端进行对 ...

  8. 抓包工具Fidder设置(移动端抓包)

    1.下载安装fiddler,下载链接:http://fiddler2.com/get-fiddler(我用的是免安装的fiddler2) 2.设置fiddler 打开Fiddler,     Tool ...

  9. Charles手机抓包设置&无法打开火狐网页设置

    1. Charles抓取手机上的网络包,需要安装证书(Charles的和手机的) 操作方法: https://blog.csdn.net/lea__dongyang/article/details/7 ...

随机推荐

  1. rac添加新节点的步骤与方法(官方步骤与自我测试)

    Extending the Oracle Grid Infrastructure Home to the New NodeNow that the new node has been configur ...

  2. (转)清除已运行过Rancher和K8S的主机上的环境数据

    文章转自 https://blog.csdn.net/CSDN_duomaomao/article/details/77684571?locationNum=5&fps=1 本文命令主要是参考 ...

  3. Django rest framework集成微博第三方登录

    Django restframework 集成第三方登录(微博.微信.QQ等) 友情链接 python-social-auth-app官方文档 微博开放者平台 QQ开放者平台 准备工作 1.注册微博开 ...

  4. Linux下ftp安装配置及三种用户的验证

    一.原理简介 二.安装配置 三.三种用户的验证 一.简介 FTP即文件传输协议(File Transfer Protocol),完成各主机的文件共享功能,基于客户端-服务器的协议,工作在应用层,tcp ...

  5. at android.view.Surface.unlockCanvasAndPost(Native Method)

    at android.view.Surface.unlockCanvasAndPost(Native Method) 在绘制动画特效的时候点击back键会报以上异常. 主要原因:当点击back按钮时A ...

  6. Java中try catch finally语句中含有return语句的执行情况(总结版)

    在这里看到了try >但有一点是可以肯定的,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也 ...

  7. Luogu4156 WC2016 论战捆竹竿 KMP、同余类最短路、背包、单调队列

    传送门 豪华升级版同余类最短路-- 官方题解 主要写几个小trick: \(1.O(nm)\)实现同余类最短路: 设某一条边长度为\(x\),那么我们选择一个点,在同余类上不断跳\(x\),可以形成一 ...

  8. [转]curl的错误代码

    转贴者按: 今天在使用curl的时候碰到了一个错误,如下所示: External Program Failed: D:\Tools\curl\curl.exe (return code was 18) ...

  9. 洛谷 P4409 [ZJOI2006] 皇帝的烦恼

    题目链接-> OVO 题解: 很久没有写博客了,可能是因为最近太颓废了吧. 刚刚考完期末考试,无比期盼早点外出学习,不要面对成绩,害怕. #include <cstdio> #inc ...

  10. (6)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- AOP框架

    AOP 框架基础 要求懂的知识:AOP.Filter.反射(Attribute). 如果直接使用 Polly,那么就会造成业务代码中混杂大量的业务无关代码.我们使用 AOP (如果不了解 AOP,请自 ...