下記の簡単なスクリプトを実行し、エラーが出ました。どこが間違っていますか?
import requests
controller = "http://10.10.10.111/"
get_devices_url = controller + 'api/v0/network-device'
get_devices_response = requests.get(get_devices_url)
print "Devices = "
print get_devices_response.text
Script on port 80...
Traceback (most recent call last):
File "apic-em-helloworld.py", line 37, in <module>
get_devices_response = requests.get(get_devices_url)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/api.py", line 68, in get
return request('get', url, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/sessions.py", line 464, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",))
Script trying 443...
/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available.
これが urllib3 が SSL を適切に設定するのを遮っており、特定の SSL 接続が失敗するのを引き起こしているようです。
より詳しい情報については、https://urllib3.readthedocs.org/en/latest/security.htmlのinsecureplatformwarning をご確認ください。
InsecurePlatformWarning
Traceback (most recent call last):
File "apic-em-helloworld.py", line 37, in <module>
get_devices_response = requests.get(get_devices_url)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/api.py", line 68, in get
return request('get', url, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/sessions.py", line 464, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/sessions.py", line 602, in send
history = [resp for resp in gen] if allow_redirects else []
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/sessions.py", line 195, in resolve_redirects
allow_redirects=False,
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/Library/Python/2.7/site-packages/requests-2.6.0-py2.7.egg/requests/adapters.py", line 431, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Sandbox lab内で使われている自己署名証明書との問題があるようです。
request.get パラメータに ’verify=false’ を追加しようとしています。このパラメータは証明書の検証をスキップするよう直接要求します。
このパラメータはテスト、実験で問題がないとしても、もちろん製品内では使用しないでください。
こちらが例です。
get_devices_response = requests.get(get_devices_url, verify=False)
コメント
0件のコメント
サインインしてコメントを残してください。