如何解决如何从python代码引发Suds.WebFault?
| 我正在尝试从python代码引发Suds.WebFault。__init__
method \\ constructor使用三个参数__init__(self,fault,document)
。该故障具有fault.faultcode和fault.detail成员\\ attributes \\ properties。我找不到什么类别的错误不属于我尝试过的东西。如何从python代码引发Suds.WebFault类型异常?
提前致谢。
解决方法
不确定您要问的是什么,但可以使用以下方法引发网络故障:
import suds
try:
client.service.Method(parameter)
except suds.WebFault,e:
print e
,WebFault在suds.__init__.py
中定义为:
class WebFault(Exception):
def __init__(self,fault,document):
if hasattr(fault,\'faultstring\'):
Exception.__init__(self,u\"Server raised fault: \'%s\'\" %
fault.faultstring)
self.fault = fault
self.document = document
因此,要使用有意义的消息引发WebFault,您将需要将对象作为消息的第一个参数传递。除非需要,否则文档可以简单地为“ 5”。
import suds
class Fault(object):
faultstring = \'my error message\'
raise suds.WebFault(Fault(),document=None)
,仅当Web服务器返回<Fault>
元素时,才实际引发WebFault。因此,自己提出来可能不是一个好主意。
如果您仍然愿意,我将开始查看框架引发它的代码:https://github.com/unomena/suds/blob/4e90361e13fb3d74915eafc1f3a481400c798e0e/suds/bindings/binding.py#L182-然后从那里。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。