Python requests请求https遇到问题

本文介绍了使用Python的requests库进行HTTPS请求时遇到的SSL验证问题及其解决方案。包括通过指定证书路径或设置环境变量来绕过或自定义SSL验证。
部署运行你感兴趣的模型镜像

requests请求https遇到的问题

http://bbs.youkuaiyun.com/topics/391059920

requests库测试https协议接口

利用Python测试https的接口,利用requests库中的控制参数:

requests的控制参数参考:requests库具体使用

12.verify:Ture/False,默认是Ture,用于验证SSL证书开关

13.cert:保存本地SSL证书路径的字段

解决方法1:

#!/bin/env python
import requests
url = "https://www.qlchat.com/login.html"
ret = requests.get(url, verify="/Test/ssl_address/qlchat.com.crt")
print ret.status_code

通过 verify 指定证书,表示相信此证书(52.77.252.184.crt 是服务器端证书);也可以用 verify=False,表示不验证服务器端的证书。

https的证书获取:

通过Chrome里面-设置-证书,可以导出该域名的ssl证书,然后放到指定路径,verify=证书路径。就能直接请求https了


解决方法2:

设置环境变量 REQUESTS_CA_BUNDLE:
export REQUESTS_CA_BUNDLE=/tmp/ssl/52.77.252.184.crt
然后使用 request 访问。
#!/bin/env python
import requests
url = "https://52.77.252.184/test.txt"
ret = requests.get(url)
print ret.status_code


您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python中使用`requests`库进行请求时遇到未获授权问题,通常是因为服务器需要身份验证信息,下面是一些常见的解决办法: ### 基本身份验证 如果服务器使用基本身份验证,可在请求时提供用户名和密码。示例代码如下: ```python import requests from requests.auth import HTTPBasicAuth url = 'https://example.com/api' username = 'your_username' password = 'your_password' response = requests.get(url, auth=HTTPBasicAuth(username, password)) ``` ### 令牌身份验证 若服务器使用令牌进行身份验证,可在请求头中添加令牌信息。示例代码如下: ```python import requests url = 'https://example.com/api' token = 'your_token' headers = { 'Authorization': f'Bearer {token}' } response = requests.get(url, headers=headers) ``` ### OAuth 身份验证 对于需要 OAuth 身份验证的情况,可以使用`requests-oauthlib`库。示例代码如下: ```python from requests_oauthlib import OAuth1Session client_key = 'your_client_key' client_secret = 'your_client_secret' resource_owner_key = 'your_resource_owner_key' resource_owner_secret = 'your_resource_owner_secret' oauth = OAuth1Session( client_key, client_secret=client_secret, resource_owner_key=resource_owner_key, resource_owner_secret=resource_owner_secret ) url = 'https://example.com/api' response = oauth.get(url) ``` ### 检查请求头 有时候服务器会根据请求头来判断是否授权,确保请求头包含必要的信息。示例代码如下: ```python import requests url = 'https://example.com/api' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值