requests---HTTPS请求

  做过接口测试的都会发现,现在的接口都是HTTPS协议了,今天就写一篇如何通过request发送https请求,如果不是很了解HTTP协议的同学可以看下我的另外一篇博客什么是HTTP

 

什么是HTTPS

HTTPS 的全称是Hyper Text Transfer Protocol over Secure Socket Layer ,是以安全为目标的HTTP通道,简单的讲是HTTP的安全版本,即HTTP下加入SSL层,简称HTTPS

其中HTTPS的安全基础为SSL,因此通过它的传输的内容都是经过SSL加密的,它的主要作用可以分为两种:

1、建立一个信息安全通道来保证数据传输的安全

2、确保网站的真实性,凡是使用了HTTPS 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息。

 

requests发送HTTPS

1.requests发送请求

2.携带请求头发送https

# coding:utf-8
import requests
# 请求地址
url = "https://www.qlchat.com"
headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chro'
                      'me/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400'
}
r = requests.get(url,headers=headers)
print(r.status_code)

代码结果:
错误提示:requests.exceptions.SSLError: HTTPSConnectionPool(host='www.qlchat.com', port=443)

发现请求后代码出现了报错,发现是SSL的问题。

 

SSL证书验证

requests中是有SSL证书认证的,SSL像默认浏览器一样,SSL 验证默认是开启的,如果证书验证失败,Requests 会抛出 SSLError,如果证书验证失败的时候加上verify=False

源码:

def request(method, url, **kwargs):
    """Constructs and sends a :class:`Request <Request>`.
    :type allow_redirects: bool
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a string, in which case it must be a path
            to a CA bundle to use. Defaults to ``True``.

代码太多了,删除了一些

回到上面的代码,加入verify=False再次请求,会发现请求成功,但是会报一行安全错误,

# coding:utf-8
import requests
# 请求地址
url = "https://www.qlchat.com"
headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chro'
                      'me/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400'
}
r = requests.get(url,headers=headers,verify=False)
print(r.status_code)

解决上图报错。导入urllib3模块,引入urllib3.disable_warnings()方法

再次请求就会发现报错没有了

 

 

感觉对你有帮助,或者喜欢的小伙伴们,点个关注,持续更新,让我们在测试的道路上更加精彩 

 

转载于:https://www.cnblogs.com/qican/p/11176527.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值