我在用
import requests
requests.post(url='https://foo.example', data={'bar':'baz'})
但是我得到一个request。exceptions。sslerror。 网站的证书过期了,但我没有发送敏感数据,所以这对我来说无关紧要。 我可以想象有一个像“verify =False”这样的参数,我可以使用,但我似乎找不到它。
我在用
import requests
requests.post(url='https://foo.example', data={'bar':'baz'})
但是我得到一个request。exceptions。sslerror。 网站的证书过期了,但我没有发送敏感数据,所以这对我来说无关紧要。 我可以想象有一个像“verify =False”这样的参数,我可以使用,但我似乎找不到它。
当前回答
要添加到Blender的答案中,您可以使用Session禁用所有请求的SSL证书验证。verify = False
import requests
session = requests.Session()
session.verify = False
session.post(url='https://example.com', data={'bar':'baz'})
请注意urllib3(请求使用的)强烈不鼓励发出未经验证的HTTPS请求,并将引发InsecureRequestWarning。
其他回答
要添加到Blender的答案中,您可以使用Session禁用所有请求的SSL证书验证。verify = False
import requests
session = requests.Session()
session.verify = False
session.post(url='https://example.com', data={'bar':'baz'})
请注意urllib3(请求使用的)强烈不鼓励发出未经验证的HTTPS请求,并将引发InsecureRequestWarning。
什么对我有效Due verify=False Bug
由于会话上的错误。验证=False,使urllib*忽略 当设置环境变量(CURL_CA_BUNDLE)时。所以我们把它设为零。
import requests, os
session = requests.Session()
session.verify = False
session.trust_env = False
os.environ['CURL_CA_BUNDLE']="" # or whaever other is interfering with
session.post(url='https://example.com', data={'bar':'baz'})
不确定我是否需要trust_env
如果你想准确地发送带有verify=False选项的post请求,最快的方法是使用以下代码:
import requests
requests.api.request('post', url, data={'bar':'baz'}, json=None, verify=False)
在请求方法上使用requests.packages.urllib3.disable_warnings()和verify=False。
import requests
from urllib3.exceptions import InsecureRequestWarning
# Suppress only the single warning from urllib3 needed.
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
# Set `verify=False` on `requests.post`.
requests.post(url='https://example.com', data={'bar':'baz'}, verify=False)
也可以使用环境变量:
export CURL_CA_BUNDLE=""