我正在尝试从python代码中引发一个Suds.WebFault。 __init__
方法\构造函数有三个参数__init__(self, fault, document)
。该故障有fault.faultcode和fault.detail成员\ attributes \ properties。我无法找出什么类错误属于没有matte我尝试过。如何从python代码中引发Suds.WebFault类型异常?
提前致谢。
答案 0 :(得分:6)
不确定您究竟要问的是什么,但您可以使用以下方法引发网络错误:
import suds
try:
client.service.Method(parameter)
except suds.WebFault, e:
print e
答案 1 :(得分:3)
WebFault在 private void openScreenshot(File imageFile) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(imageFile);
intent.setDataAndType(uri, "image/*");
startActivity(intent);
}
中定义为:
suds.__init__.py
因此,要使用有意义的消息来引发WebFault,您需要将对象作为第一个参数传递给消息。除非必要,否则文档可以简单为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
。
None
答案 2 :(得分:0)
WebFault仅用于在Web服务器返回<Fault>
元素时实际引发。所以自己提出这个可能是一个坏主意。
如果您仍然愿意,我会开始查看框架引发它的代码:https://github.com/unomena/suds/blob/4e90361e13fb3d74915eafc1f3a481400c798e0e/suds/bindings/binding.py#L182 - 并从那里向后工作。