Как получить код ответа http от клиента suds при использовании ошибок - PullRequest
3 голосов
/ 08 апреля 2011

Я использую suds для вызова службы Windows / WCF следующим образом:

<code>
# Setting up my client
client = Client(wsdl, transport = my_transport, location = url, faults = True, headers = my_soap_action_header, cache = None, wsse = my_http_security)

И я получаю ответ примерно так:

<code>
(Link){ Id = 12345 Type = "SomeType" }

Из разговора с разработчиком веб-службы я узнал, что возвращаемое значение - это идентификатор и тип возвращаемого объекта, иначе он выдаст исключение.

Тем не менее, мне интересно, как опросить клиента suds для нормального http-кода ответа (например, 200).

1 Ответ

5 голосов
/ 29 ноября 2011

Я полагаю, что это старый вопрос, но в случае, если кто-то еще наткнется на это, я дам ответ.

вы можете настроить клиент с помощью faults = False, тогда он не генерирует webFaults при возникновении ошибки (так что вам придется реализовать собственный метод обработки ошибок), вместо этого он возвращает кортеж с

(<status>, <returned-value>)

например (взято из документации suds )

client = client(url, faults=False)
result = client.service.addPerson(person)
print result

( 200, person ...)

надеюсь, что это поможет (если вы когда-нибудь оглянетесь назад)

...