Я пытаюсь поймать FaultException при использовании библиотеки Zeep для SOAP-коммуникаций.
Я могу сделать это, когда 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 Exception.