Python HTTPS Post: 找不到现有的 url
Python HTTPS Post: can not find existing url
我目前正在做一个项目,我必须将 json 对象发送到嵌入式 pc,它实现了 Json RPC。
该设备在我的局域网中,有一个 IP 地址并且可以访问。
大约两周前,我的代码还可以工作,但当我今天坐下来继续工作时,它不再工作了。
我在 Visual Studio 2017 年工作。
到目前为止,我尝试了 Python 3.4(64 位),Python 3.6(64 和 32 位)
这是我尝试过的:
import json
import urllib3
import sys
import base64
import os
import io
import base64
import hashlib
from base64 import b64encode
role = "admin"
passwd = "*******"
service_url = "https://192.168.0.65/base_service/"
http = urllib3.PoolManager( assert_hostname=False, ca_certs="cert/myCertificate.crt" )
passwd_b64 = str( b64encode( bytes( passwd, "utf8" ) ), "utf8" )
rpc_obj = {"jsonrpc": "2.0","id":1,"method":"get_auth_token","params":{"user": "admin", "pwd": passwd_b64}}
at = http.urlopen( "POST", service_url, body=json.dumps( rpc_obj ) )
这应该会生成一个用于其他功能的令牌。但在最后一行我得到这个错误:
urllib3.exceptions.MaxRetryError
Nachricht = HTTPSConnectionPool(host='192.168.0.65', port=443): Max retries exceeded with url: /base_service/ (Caused by SSLError(FileNotFoundError(2, 'No such file or directory'),))
Stapelüberwachung:
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\util\retry.py:388 in "Retry.increment"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:639 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:668 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:668 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:668 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\poolmanager.py:321 in "PoolManager.urlopen"
C:\Users\UserXY\source\repos\containerController\containerController.py:20 in "<module>"
我不知道为什么会出现此错误。我还有一个 java 程序,它的功能相同,但运行完美。
遗憾的是,该设备的文档只有一些 python 示例,我无法实现 java.
中的所有功能
有没有人有想法或提示?
看这部分错误:(Caused by SSLError(FileNotFoundError(2, 'No such file or directory'),))
我认为它找不到证书文件。
我目前正在做一个项目,我必须将 json 对象发送到嵌入式 pc,它实现了 Json RPC。 该设备在我的局域网中,有一个 IP 地址并且可以访问。
大约两周前,我的代码还可以工作,但当我今天坐下来继续工作时,它不再工作了。
我在 Visual Studio 2017 年工作。 到目前为止,我尝试了 Python 3.4(64 位),Python 3.6(64 和 32 位)
这是我尝试过的:
import json
import urllib3
import sys
import base64
import os
import io
import base64
import hashlib
from base64 import b64encode
role = "admin"
passwd = "*******"
service_url = "https://192.168.0.65/base_service/"
http = urllib3.PoolManager( assert_hostname=False, ca_certs="cert/myCertificate.crt" )
passwd_b64 = str( b64encode( bytes( passwd, "utf8" ) ), "utf8" )
rpc_obj = {"jsonrpc": "2.0","id":1,"method":"get_auth_token","params":{"user": "admin", "pwd": passwd_b64}}
at = http.urlopen( "POST", service_url, body=json.dumps( rpc_obj ) )
这应该会生成一个用于其他功能的令牌。但在最后一行我得到这个错误:
urllib3.exceptions.MaxRetryError
Nachricht = HTTPSConnectionPool(host='192.168.0.65', port=443): Max retries exceeded with url: /base_service/ (Caused by SSLError(FileNotFoundError(2, 'No such file or directory'),))
Stapelüberwachung:
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\util\retry.py:388 in "Retry.increment"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:639 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:668 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:668 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\connectionpool.py:668 in "HTTPConnectionPool.urlopen"
C:\Program Files (x86)\Entwicklung\Python\lib\site-packages\urllib3\poolmanager.py:321 in "PoolManager.urlopen"
C:\Users\UserXY\source\repos\containerController\containerController.py:20 in "<module>"
我不知道为什么会出现此错误。我还有一个 java 程序,它的功能相同,但运行完美。 遗憾的是,该设备的文档只有一些 python 示例,我无法实现 java.
中的所有功能有没有人有想法或提示?
看这部分错误:(Caused by SSLError(FileNotFoundError(2, 'No such file or directory'),))
我认为它找不到证书文件。