Python “肥皂水”是什么意思&书信电报;故障代码/>;未映射到消息部分;?
我第一次使用suds,并尝试与外部公司托管的服务器通信。当我在服务器上调用一个方法时,我得到了这个XMLPython “肥皂水”是什么意思&书信电报;故障代码/>;未映射到消息部分;?,python,soap,suds,Python,Soap,Suds,我第一次使用suds,并尝试与外部公司托管的服务器通信。当我在服务器上调用一个方法时,我得到了这个XML <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Can't use string ("") as an ARRAY ref while "strict refs" in use at /vindicia/site_perl/Vindicia/Soap/DocLitUtils.pm line 130.
</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
soap:服务器
在/vindicia/site\u perl/vindicia/Soap/DocLitUtils.pm第130行使用“strict refs”时,不能将字符串(“”)用作数组引用。
引发的异常如下:
File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 538, in __call__
return client.invoke(args, kwargs)
File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 602, in invoke
result = self.send(msg)
File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 634, in send
result = self.succeeded(binding, reply.message)
File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\client.py", line 669, in succeeded
r, p = binding.get_reply(self.method, reply)
File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\bindings\binding.py", line 157, in get_reply
result = self.replycomposite(rtypes, nodes)
File "C:\Python26\lib\site-packages\suds-0.4-py2.6.egg\suds\bindings\binding.py", line 227, in replycomposite
raise Exception(' not mapped to message part' % tag)
Exception: 'faultcode' not mapped to message part
文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”,第538行,在调用中__
返回client.invoke(args、kwargs)
调用中的文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”,第602行
结果=self.send(msg)
文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”,第634行,在send中
结果=self.successed(绑定、回复、消息)
第669行的文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\client.py”成功
r、 p=binding.get\u reply(self.method,reply)
文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\bindings\binding.py”,第157行,在get\U回复中
结果=self.replycomposite(rtypes,nodes)
replycomposite中的文件“C:\Python26\lib\site packages\suds-0.4-py2.6.egg\suds\bindings\binding.py”,第227行
引发异常('未映射到消息部分''%1!''标记)
异常:“faultcode”未映射到消息部分
知道为什么suds会抛出异常吗?关于如何修复它有什么想法吗?我遇到了一个类似的问题,调用成功,在解析客户端响应时,suds崩溃了。我使用的变通方法是使用,然后使用解析响应 例如:
client = Client(url)
client.set_options(retxml=True)
soapresp_raw_xml = client.service.submit_func(data)
soup = BeautifulStoneSoup(soapresp_raw_xml)
value_i_want = soup.find('ns:NewSRId')
这里已经回答了:
此异常实际上意味着来自SOAP服务的应答包含标记
,而该标记在服务的WSDL方案中不存在
请记住,suds库缓存WSDL方案,这就是为什么如果WSDL方案最近发生了更改,那么问题可能会发生的原因。然后,答案与新方案匹配,但由suds客户端使用旧方案进行验证。在这种情况下,
rm/tmp/suds/*
将帮助您 我也有同样的问题。找到什么了吗?不确定原因是什么,但似乎已经在0.4测试版中修复。哦,伙计,这是一个严肃的1992 HTML网页(美丽的汤)。如果要解析XML,请记住使用有效的解析器作为第二个参数:Soup=BeautifulSoup(soapresp_raw_XML,“lxml”)
。考虑到构造函数已经更改:不再有用于解析XML的BeautifulsToneSoop类。要解析XML,请将“XML”作为第二个参数传递给BeautifulSoup构造函数。出于同样的原因,BeautifulSoup构造函数不再识别isHTML参数。()