微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python请求:NewConnectionError,urllib3,使用cert和verify属性

如何解决Python请求:NewConnectionError,urllib3,使用cert和verify属性

因此,我正在开发的程序涉及在银行DMS服务器中发布文档。他们为我提供了.cer格式的服务器证书,该证书已插入代码中的verify变量中。他们还提供了我必须嵌入标头本身的客户端ID和密码。我生成了自签名的客户证书和私钥,并以cer格式和公钥向他们提供了客户证书。同样在代码中,我在证书元组中给出了客户端证书和私钥的路径。 执行代码后,出现此错误

    HTTPSConnectionPool(host='apimuat.xxxbank.com',port=9095): Max retries exceeded with url: /doc-mgmt/v1/uploadDoc (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fb01bd8a160>: Failed to establish a new connection: [Errno 60] Operation timed out'))


File "/Users/fpl_mayank/Documents/FPL/python-virtual-env/uploadDocApi/server.py",line 164,in main
    result = requests.post(url,File "/Users/fpl_mayank/Documents/FPL/python-virtual-env/uploadDocApi/server.py",line 189,in <module>
    main()

我已经使用“ https://postman-echo.com/post”对其进行了测试,但未提及cert并仅检查我的请求是否通过。那里工作正常。

这是我使用请求功能代码段。

url='https://apimuat.xxxbank.com:9095/doc-mgmt/v1/uploadDoc'
headers = {"Content-Type": "application/json","client_id":"af197b22539647fba4db8b971b43e38","client_secret":"c1AA406e24074d8887954472C78a924"}
data = req
result = requests.post(url,data=data,headers=headers,cert=('/Users/fpl_mayank/Documents/FPL/python-virtual- 
env/uploadDocApi/keystore/dms_csr_certificate_self.cer','/Users/fpl_mayank/Documents/FPL/python-virtual-env/uploadDocApi/keystore/dms_private_key.key'),verify='/Users/fpl_mayank/Documents/FPL/python-virtual-env/uploadDocApi/truststore/APIM-UAT.cer'
             )
        
        res = result.json()

在apidoc中提到,将通过客户端和服务器实施2路SSL身份验证。我也为此事为此程序制作了虚拟环境。请帮忙。我是公司中第一个使用python编写API的人,因此解决问题的唯一方法是通过良好的ol stackoverflow。

解决方法

所以我解决了这个问题。 idk到底是什么解决了问题,但请确保在使用api时,根据需要从网络中将端点的ip列入白名单,并且同样也要从他们的角度出发。另外,我正在发送带有标识和空格的格式化json请求,因此请确保将json放在一行中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。