requests接口测试-https证书

一,Https协议

Https协议即超文本传输安全协议(Hypertext Transfer Protocol Secure,缩写:HTTPS)是一种网络安全传输协议。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此使用HTTP协议传输敏感信息非常不安全。HTTPS在HTTP的基础上用SSL/TLS来加密数据包,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。HTTP使用80端口,而HTTPS占用443端口。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。

二,Https证书认证问题

我们在进行接口测试的时候,发送https请求常常会报Https证书认证失败警告提示信息,如:
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.juhe.cn', port=443): Max retries exceeded with url: /login/login (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))),如图:

解决办法通常有两种,一种是发送https请求时忽略证书,证书的参数为Verify,默认为True,可以在代码中设置为False,忽略证书。这种方式也是比较常用的方法。另外一种就是在Verify中添加证书的路径。

"""
接口名称:聚合数据网站登录接口
目标:Https证书认证失败解决方案
接口URL:https://www.juhe.cn/login/login
请求方法:post
请求参数:username,password
"""
import  requests
#URLd地址;
url="https://www.juhe.cn/login/login"
#data参数为字典
data={
"username":18xxxxxxxx,
"password": "xxxxxxxx"
}
#第一种解决办法:发送请求时忽略证书,verify默认为为True,设置为False
r=requests.post(url,data=data,verify=False)
#第二解决办法:发送请求时忽略证书,verify默认为为True,设置为False
r=requests.post(url,data=data,verify='证书路径')
print(r.text)
print(r.status_code)
print(r.headers)

posted @ 2020-08-15 10:17  柠檬草不孤单  阅读(804)  评论(0编辑  收藏  举报