Estou usando o Python 3.7.3 para executar uma solicitação GET para um arquivo PHP hospedado em meu site. No entanto, quando o executo, recebo o erro abaixo. Eu instalei requests
através pip3
do Homebrew. Estou usando macOS Mojave.
Traceback (última chamada mais recente):
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/connectionpool.py", linha 600, em urlopen chunked=chunked)
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/connectionpool.py", linha 343, em _make_request self._validate_conn(conn)
Arquivo "/Library/Frameworks/Python .framework/Versions/3.7/lib/python3.7/site-packages/urllib3/connectionpool.py", linha 839, em _validate_conn conn.connect()
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib /python3.7/site-packages/urllib3/connection.py", linha 344, em conectar ssl_context=context)
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/util/ssl_.py", linha 344, em ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", linha 412, in wrap_socket session=session
File "/Library/Frameworks/Python.framework/Versions/3.7/lib /python3.7/ssl.py", linha 853, em _create self.do_handshake()
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", linha 1117, em do_handshake self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] falha na verificação do certificado: não foi possível obter o certificado do emissor local (_ssl.c:1056)Durante o tratamento da exceção acima, outra exceção ocorreu:
Traceback (última chamada mais recente):
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/adapters.py", linha 449, em send timeout=timeout
Arquivo " /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/connectionpool.py", linha 638, em urlopen _stacktrace=sys.exc_info()[2])
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/util/retry.py", linha 398, em incrementos raise MaxRetryError(_pool, url, error ou ResponseError( cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='ijetlab.com', port=443): Máximo de tentativas excedido com url: /api/api.php?one=1&two=2 (causado por SSLError(SSLCertVerificationError(1 , '[SSL: CERTIFICATE_VERIFY_FAILED] falha na verificação do certificado: não foi possível obter o certificado do emissor local (_ssl.c:1056)')))Durante o tratamento da exceção acima, outra exceção ocorreu:
Traceback (última chamada mais recente):
Arquivo "/Users/maxwellnewberry/Documents/test.py", linha 12, in r = requests.get(url = URL, params = PARAMS)
Arquivo "/Library/Frameworks/Python.framework /Versions/3.7/lib/python3.7/site-packages/requests/api.py", linha 75, in get return request('get', url, params=params, **kwargs)
File "/Library/Frameworks /Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/api.py", linha 60, na solicitação return session.request(method=method, url=url, **kwargs)
Arquivo " /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/sessions.py", linha 533, na solicitação resp = self.send(prep, **send_kwargs)
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/sessions.py", linha 646, em send r = adapter.send(request, **kwargs)
Arquivo "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/adapters.py", linha 514, em send raise SSLError(e, request=request) requests.exceptions.SSLError : HTTPSConnectionPool(host='ijetlab.com', port=443): Máximo de tentativas excedido com url: /api/api.php?one=1&two=2 (Causado por SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificado falha na verificação: não foi possível obter o certificado do emissor local (_ssl.c:1056)')))
Aqui está o código:
# importing the requests library
import requests
# api-endpoint
URL = "https://ijetlab.com/api/api.php"
# defining a params dict for the parameters to be sent to the API
PARAMS = {'one':1, 'two':2}
# sending get request and saving the response as response object
r = requests.get(url = URL, params = PARAMS)
# extracting data in json format
data = r.json()
print(data['response'])
Todas as pesquisas me disseram para executar 'Install Certificates.command', e eu executei – cerca de 100 vezes. Também fiz os certificados de instalação do cliente.