Ofe*_*dan 7 python logging wsdl python-3.x zeep
我正在使用该zeep程序包访问https上的一些API,并且在每个连接上它都会打印出警告(到stderr):
Forcing soap:address location to HTTPS
Run Code Online (Sandbox Code Playgroud)
我确实进行了一些搜索,发现负责的行是this,这意味着这是模块的日志记录级别的结果。更改日志级别似乎需要编辑此文件。
这对我来说是一个不好的解决方案,因为我希望能够在运行时关闭此警告,因为使用此软件包的应用程序将是冻结的应用程序(exe)。
如果是这样,那么这些是显示该警告所需的最少行(尽管显然,这里的域名是虚构的,用户名和密码也是如此):
import zeep
client = zeep.CachingClient('https://api.somedomain.com/Services/ApiService.svc?singleWsdl')
client.service.VerifyLogin('user', 'pass')
Run Code Online (Sandbox Code Playgroud)
我知道zeep可以将客户端设置为不强制使用https,但是我认为这样会使连接的安全性降低?(毕竟,我将用户名和密码传递为不带https的明文)
经过几天的研究,我终于能够自己解决这个问题。我没有意识到可以从导入的模块更改日志记录级别。我在代码的开头(导入后)添加了这一行,它解决了这个问题:
import logging
logging.getLogger('zeep').setLevel(logging.ERROR)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助遇到同样问题的其他人
小智 5
如果您想更具体地使用日志级别开关,为了不错过整个 zeep 模块中的其他警告,您可以像下面这样设置它:
logging.getLogger('zeep.wsdl.bindings.soap').setLevel(logging.ERROR)
Run Code Online (Sandbox Code Playgroud)
这将仅阻止肥皂绑定类的警告消息,而不会阻止其余类的警告消息。
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |