解決python2.x用urllib2證書驗證錯誤, _create_unverified_context

解決如下錯誤:python

錯誤1:AttributeError: 'module' object has no attribute '_create_unverified_context',ajax

錯誤2:URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)>app

 

在代碼中加入如下代碼:ide

複製代碼
 1 import ssl
 2 
 3 try:
 4     _create_unverified_https_context = ssl._create_unverified_context
 5 except AttributeError:
 6     # Legacy Python that doesn't verify HTTPS certificates by default
 7     pass
 8 else:
 9     # Handle target environment that doesn't support HTTPS verification
10     ssl._create_default_https_context = _create_unverified_https_context
複製代碼

官方解釋:post

複製代碼
This guidance is aimed primarily at system administrators that wish to adopt newer 
versions of Python that implement this PEP in legacy environments that do not yet
support certificate verification on HTTPS connections. For example, an administrator
may opt out by adding the monkeypatch above to sitecustomize.py in their Standard
Operating Environment for Python. Applications and libraries SHOULD NOT be making
this change process wide (except perhaps in response to a system administrator
controlled configuration setting). Particularly security sensitive applications should always provide an explicit
application defined SSL context rather than relying on the default behaviour
of the underlying Python implementation.
複製代碼

 

Python訪問https連接錯誤排查ui

 

1. 遇到這種錯誤有多是機器無外網權限形成的。this

  requests.exceptions.ConnectionError: HTTPSConnectionPool(host='', port=443): Max retries exceeded with url: /s/savecomtajax (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f972f48bf90>: Failed to establish a new connection: [Errno 110] Connection timed out',))url

2.  requests 發https 請求時,須要忽略證書的驗證, 須要注意以下點。spa

requests.packages.urllib3.disable_warnings()
def request_ajax_url(login_url,login_body, headers):
    '''發送post請求數據'''
    req = requests.post(login_url, data=login_body, headers=headers, verify=False);
    return  req.text
相關文章
相關標籤/搜索