the documentation से
:
अनुरोध भी अगर आप verify
गलत पर सेट की एसएसएल सर्टिफिकेट की पुष्टि करने की उपेक्षा कर सकते हैं।
>>> 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')
धन्यवाद, यह काम करता है अगर आप कुछ अनुरोध है अपने खुद के कोड के अंदर कहता है, लेकिन कल्पना करें कि मैं इसे तीसरे आंशिक रूप से लाइब्रेरी में अक्षम करना चाहता हूं जो अनुरोधों का उपयोग करता है ... इस तरह की तीसरी पार्टी lib को ठीक करना असंभव होगा। – sorin
@ सोरीन: बस बंदर पैच 'अनुरोध' और 'गलत' को 'सत्यापित करें' डिफ़ॉल्ट है। – Blender
मैं बड़े गंदे चेतावनी संदेश को कैसे दबा सकता हूं जो अभी भी मुद्रित हो जाता है? – Michael