我目前正在开发一个项目,我必须将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中实现所有函数。
有没有人有想法或提示?
答案 0 :(得分:2)
查看错误的这一部分:(Caused by SSLError(FileNotFoundError(2, 'No such file or directory'),))
我认为找不到证书文件。