Zeep关闭主机验证

2024-04-25 05:09:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Pythonzeep发出SOAP请求。对于SSL验证,HostHeaderSSLAdapter被添加为我的URL https://dev_alias:8096/some_soap,它包含一个别名,而不是实际的主机名。在

下面的代码使用requests可以正常工作。所以我假设session是正确的。在

import requests
from requests_toolbelt.adapters import host_header_ssl
from zeep.transports import Transport
from zeep import Client, Settings

url = 'https://dev_alias:8096/some_soap'
params = {'param1': 'value1'}

session = requests.Session()
session.verify = 'CertBundle.pem'
session.mount('https://', host_header_ssl.HostHeaderSSLAdapter())

headers = {'SOAPAction': '""', 'Content-Type': 'text/xml; charset=utf-8'}
message = b"<?xml version=\'1.0\' encoding=\'utf-8\'?>....</soap-env:Envelope>"

session.post(url, data=message, headers=headers)

但是,当相同的session用于zeep的Transport时,此代码将失败。在

^{2}$

如何使用zeep关闭主机名验证?使用zeep版本3.4.0 0和请求2.22.0


Tags: 代码fromhttpsdevimporthostsessionalias
1条回答
网友
1楼 · 发布于 2024-04-25 05:09:03

出于测试目的,您可以禁用ssl验证,如下所述https://python-zeep.readthedocs.io/en/master/transport.html

在这种情况下,将session.verify行改为

session.verify = False

请注意,您几乎肯定不希望在生产系统中这样做。在

相关问题 更多 >