如何在使用故障时从suds客户端获取http响应代码

时间:2011-04-08 00:13:34

标签: wcf soap python-2.6 suds

我正在使用suds来调用Windows / WCF服务,如下所示:


# 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)

而且,我得到的答案是这样的:


(Link){ Id = 12345 Type = "SomeType" }

通过与Web服务的开发人员交谈,我知道返回值是返回的对象的ID和类型,否则会引发异常。

那就是说,我想知道如何询问suds客户端的正常http响应代码(例如200)。

1 个答案:

答案 0 :(得分:5)

我觉得这是一个老问题,但如果其他人偶然发现这个问题,我会提供答案。

您可以使用faults = False设置客户端,然后在发生错误时不会抛出webFaults(因此您必须实现自己的错误处理)而不是返回带有

的元组
(<status>, <returned-value>)
例如

(取自suds documentation

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

( 200, person ...)

希望有所帮助(如果你回头看这里)

相关问题