首页 > 解决方案 > zeep - 禁用警告“强制肥皂:地址位置到 HTTPS”

问题描述

我正在使用该zeep包访问 https 上的一些 API,并且在每个连接上它都会打印出一个警告(到 stderr):

Forcing soap:address location to HTTPS

我所做的一些搜索发现负责的行是this,这意味着这是模块日志记录级别的结果。更改日志级别似乎需要编辑此文件

这对我来说是一个糟糕的解决方案,因为我希望能够在运行时关闭这个警告,因为使用这个包的应用程序将是一个冻结的应用程序(一个 exe)。

如果这是相关的,那么这些是显示该警告所需的最少行(尽管显然,这里的域是虚构的,用户和密码也是如此):

import zeep
client = zeep.CachingClient('https://api.somedomain.com/Services/ApiService.svc?singleWsdl')
client.service.VerifyLogin('user', 'pass')

我知道zeep客户端可以设置为不强制使用 https,但我认为这会降低连接的安全性?(毕竟,我将用户名和密码作为没有 https 的明文传递)

标签: pythonpython-3.xloggingwsdlzeep

解决方案


经过几天的研究,我终于能够自己解决这个问题。我没有意识到可以从导入的模块中更改日志记录级别。我在代码的开头添加了这一行(在导入之后),它解决了这个问题:

import logging
logging.getLogger('zeep').setLevel(logging.ERROR)

希望这可以帮助遇到同样问题的其他人


推荐阅读