首页 > 解决方案 > 使用证书(Python3)向zeep(SAOP)请求

问题描述

基于此文档使用证书:

https://python-zeep.readthedocs.io/en/master/transport.html

我的代码是:

from zeep import Client as zeepClient
from zeep.transports import Transport
from requests import Session
import os

file_pem = os.path.dirname(os.path.realpath(__file__)) + "/file.pem"
session = Session()
session.verify = file_pem
transport = Transport(session=session)
zeepclient = zeepClient('https://myurl.com:8000/demo/services/User?wsdl', transport=transport)
result = zeepclient.service.adUser(payload)

它不起作用。

错误:

requests.exceptions.SSLError: HTTPSConnectionPool(host='myurl.com', port=8000): 最大重试次数超出了 url: /demo/services/User?wsdl (由 SSLError(SSLError("bad handshake: Error([( 'SSL 例程'、'tls_process_server_certificate'、'证书验证失败')],)",),))

.pem 文件示例:

-----BEGIN CERTIFICATE----- MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD QTAeFw0xMzAzMDgxMjAwMDBaFw0yM............................... .....................................eNqzqPlt/yGFUzZgTHbO7Djc1lGA 8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f /1LkAtDdC 2iDJ6m6K7hQGrn2iWZiIq -----结束证书-----

标签: python-3.xsoapssl-certificatesudszeep

解决方案


推荐阅读