1、SSL证书验证
requests在请求HTTPS接口时,默认验证SSL证书,请求方法中默认参数为verify=True,如果想要关闭证书验证,可以设置为False,示例如下。
requests.get('https://www.baidu.com', verify=False)
2、不自动重定向
当遇到重定向接口,requests默认跟随重定向,返回所重定向接口的响应对象(<Response [200]>),对于一些单点登录后转向的接口,有时我们需要获取原接口响应中的token信息,则需要使用allow_redirects=False关闭自动重定向,使用方法如下。
import requests
res = requests.get('https://httpbin.org/status/302')
print(res)
res = requests.get('https://httpbin.org/status/302', allow_redirects=False)
print(res)
第一个自动跟随重定向,返回<Response [200]>,关闭重定向后返回<Response [302]>。
3、代理设置
requests支持使用代理,对于HTTP和HTTPS分别使用不同的代理,使用方式如下。
import requests
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
requests.get("http://example.org", proxies=proxies)
4、超时设置
requests支持对请求设置超时时间,以防止请求长时间无响应而阻塞,设置方法如下。
import requests
requests.get('https://github.com', timeout=5) # 设置整体的超时时间5s
requests.get('https://github.com', timeout=(3, 2)) # 分别设置连接和下载响应内容的超时时间3s,2s。
如果在超时时间内未完成响应,则抛出TimeoutError
5、授权设置(身份认证)
授权是请求身份验证的一些开放协议标准,授权协议很多,包括Basic Auth基础授权,Digist Auth摘要授权,Oauth等。
Basic Auth
Basic Auth基础授权使用用户名和密码来验证身份,在requests中使用方法如下。
import requests
requests.get('https://api.github.com/user', auth=(