我试图在使用zeep库进行SOAP通信时捕捉FaultException。
当zeep librabry从客户端接收xml并在内部解析并默认返回字典时,我就能做到这一点。当解析包含FaultException的响应时,我得到以下错误。
Traceback (most recent call last):
File "zeep_test_emulator.py", line 83, in <module>
raise zeep_exceptions.Fault(faultexe.message)
zeep.exceptions.Fault: Forename contains invalid characters
但是当我在客户端设置中启用raw_response = True时,zeep库不会解析xml,而只是返回xml响应。现在,如果响应包含FaultException,我就无法捕捉FaultException,因为我不知道如何从响应中引发FaultException。下面是响应的内容。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Forename contains invalid characters</faultstring>
<faultactor>https://ct.abcd.co.uk/services.asmx</faultactor>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
我想区分一下FaultExceptions和Blind Exceptions。