2016-02-09 3 views
2
Traceback (most recent call last): 
    File "C:\Python27\Scripts\Vehicle Model.py", line 12, in <module> 
    response = requests.get(URL_PATTERN1) 
    File "C:\Python27\lib\site-packages\requests-2.7.0-py2.7.egg\requests\api.py", line 69, in get 
    return request('get', url, params=params, **kwargs) 
    File "C:\Python27\lib\site-packages\requests-2.7.0-py2.7.egg\requests\api.py", line 50, in request 
    response = session.request(method=method, url=url, **kwargs) 
    File "C:\Python27\lib\site-packages\requests-2.7.0-py2.7.egg\requests\sessions.py", line 465, in request 
    resp = self.send(prep, **send_kwargs) 
    File "C:\Python27\lib\site-packages\requests-2.7.0-py2.7.egg\requests\sessions.py", line 573, in send 
    r = adapter.send(request, **kwargs) 
    File "C:\Python27\lib\site-packages\requests-2.7.0-py2.7.egg\requests\adapters.py", line 431, in send 
    raise SSLError(e, request=request) 
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 

Я получаю вышеуказанную ошибку после компиляции моего кода. В настоящее время я использую API Edmunds для извлечения определенных элементов из их API. Я не знаю, почему я не получаю это сообщение об ошибке при компиляции на других компьютерах.Сертификат SSLError Проверить недействительный API Python

Тогда, когда я добавляю:

context = ssl._create_unverified_context() 
urllib2.urlopen("https://no-valid-cert", context=context) 

Я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "C:\Python27\Scripts\Vehicle Model.py", line 10, in <module> 
    urllib2.urlopen("https://no-valid-cert", context=context) 
    File "C:\Python27\lib\urllib2.py", line 154, in urlopen 
    return opener.open(url, data, timeout) 
    File "C:\Python27\lib\urllib2.py", line 431, in open 
    response = self._open(req, data) 
    File "C:\Python27\lib\urllib2.py", line 449, in _open 
    '_open', req) 
    File "C:\Python27\lib\urllib2.py", line 409, in _call_chain 
    result = func(*args) 
    File "C:\Python27\lib\urllib2.py", line 1240, in https_open 
    context=self._context) 
    File "C:\Python27\lib\urllib2.py", line 1197, in do_open 
    raise URLError(err) 
URLError: <urlopen error [Errno 11004] getaddrinfo failed> 
+0

Попробуйте это: http://stackoverflow.com/questions/27835619/ssl-certificate-verify-failed-error – Quinn

+0

Когда я добавить строку: контекст = ssl._create_unverified_context() urllib2.urlopen (» https: // no-valid-cert ", context = context) Затем я получаю еще одну ошибку: URLError: <ошибка urlopen [Errno 11004] getaddrinfo failed> –

ответ

0

Вы должны сначала убедиться, что все настроено правильно с curl. Вот шаги, которые я хотел бы использовать:

curl --version 
curl -v https://api.edmunds.com/ 
# this latter should verify that SSL and libcurl are working properly on the computer 

Если обе эти работы работают, запросы также должны работать. Если вы хотите использовать запросы без проверки SSL, вы можете использовать параметр verify для get.

session.get('https://api.edmunds.com/', verify=False) 
Смежные вопросы