Von the documentation:
Anfragen können auch die SSL certficate ignorieren überprüfen, ob Sie verify
auf False.
>>> requests.get('https://kennethreitz.com', verify=False)
<Response [200]>
Wenn Sie einen Drittanbieter-Modul verwenden und wollen die Prüfungen deaktivieren, ist hier ein Kontext-Manager, dass Affen Patches requests
und ändert es so, dass verify=False
der Standard ist und unterdrückt die Warnung.
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
Und ein Beispiel dafür, wie man es benutzt:
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')
Danke, das funktioniert, wenn Sie einige Wünsche haben Anrufe in Ihrem eigenen Code, aber stellen Sie sich vor, dass ich das in einer dritten, teilweise Bibliothek, die Anfragen verwendet, deaktivieren möchte ... es wäre unmöglich, die 3rd-Party-Bibliothek wie diese zu reparieren. – sorin
@sorin: Just affe patch 'requests' und' verify' default auf 'False'. – Blender
Wie unterdrücke ich die große böse Warnmeldung, die noch gedruckt wird? – Michael