От the documentation:
просит также игнорировать проверки SSL certficate если вы установите verify
в значение False.
>>> requests.get('https://kennethreitz.com', verify=False)
<Response [200]>
Если вы используете модуль стороннего производителя и хотите отключить проверку, вот менеджер контекста, что обезьяна патчи requests
и изменяет его так, чтобы verify=False
по умолчанию и подавляет предупреждение.
import warnings
import requests
import contextlib
try:
from functools import partialmethod
except ImportError:
# Python 2 fallback: https://gist.github.com/carymrobbins/8940382
from functools import partial
class partialmethod(partial):
def __get__(self, instance, owner):
if instance is None:
return self
return partial(self.func, instance, *(self.args or()), **(self.keywords or {}))
@contextlib.contextmanager
def no_ssl_verification():
old_request = requests.Session.request
requests.Session.request = partialmethod(old_request, verify=False)
warnings.filterwarnings('ignore', 'Unverified HTTPS request')
yield
warnings.resetwarnings()
requests.Session.request = old_request
И пример того, как использовать его:
with no_ssl_verification():
requests.get('https://93.184.216.3/')
print('It works')
try:
requests.get('https://93.184.216.3/')
except requests.exceptions.SSLError:
print('It broke')
Спасибо, это работает, если у вас есть несколько запросов вызовов внутри вашего собственного кода, но представьте, что я хочу отключить это в третьей частичной библиотеке, которая использует запросы, ... было бы невозможно установить стороннюю библиотеку, как это. – sorin
@sorin: просто патч '' '' '' '' 'обезьяны '' и' verify' по умолчанию 'False'. – Blender
Как подавить большое неприятное предупреждающее сообщение, которое все еще печатается? – Michael