Python SUDS错误-SAXParseException

Python SUDS错误-SAXParseException,python,soap,Python,Soap,有人知道为什么当响应如下所示时,我会从python suds调用中得到一个“:1:0:syntax error” <?xml version='1.0' encoding='UTF-8'?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Body> <external.bz1:reply xmlns:abn.types="uri:abn.type

有人知道为什么当响应如下所示时,我会从python suds调用中得到一个
“:1:0:syntax error”

<?xml version='1.0' encoding='UTF-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
  <env:Body>
    <external.bz1:reply xmlns:abn.types="uri:abn.types.asic.gov.au" xmlns:bn.types="uri:bn.types.asic.gov.au" xmlns:business.document.header.types="uri:business.document.header.types.asic.gov.au" xmlns:external.bz1="uri:external.bz1.asic.gov.au" xmlns:fss.types="uri:fss.types.asic.gov.au" xmlns:types="uri:types.asic.gov.au">
      <business.document.header.types:businessDocumentHeader>
        <business.document.header.types:messageType>bnLodgeApplication</business.document.header.types:messageType>
        <business.document.header.types:messageReferenceNumber>1</business.document.header.types:messageReferenceNumber>
        <business.document.header.types:messageVersion>1</business.document.header.types:messageVersion>
        <business.document.header.types:senderId>ASIC</business.document.header.types:senderId>
        <business.document.header.types:senderType>GOVT</business.document.header.types:senderType>
        <business.document.header.types:messageEvents>
          <business.document.header.types:messageEvent>
            <business.document.header.types:errorCode>00007</business.document.header.types:errorCode>
            <business.document.header.types:serverityCode>Error</business.document.header.types:serverityCode>
            <business.document.header.types:description>Message previously processed but no valid reponse is available</business.document.header.types:description>
          </business.document.header.types:messageEvent>
        </business.document.header.types:messageEvents>
      </business.document.header.types:businessDocumentHeader>
    </external.bz1:reply>
  </env:Body>
</env:Envelope>

bnLodgeApplication
1.
1.
专用集成电路
政府
00007
错误
消息之前已处理,但没有可用的有效响应
以下是堆栈跟踪:

Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/django_projects/ecr/businessNames/views.py" in externalBz1
  19.     result = doExternalBz1(test)
File "/django_projects/ecr/businessNames/models.py" in doExternalBz1
  75.     result = client.service.externalBz1(header, body)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in __call__
  542.             return client.invoke(args, kwargs)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in invoke
  602.         result = self.send(soapenv)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in send
  643.                 result = self.succeeded(binding, reply.message)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in succeeded
  678.             reply, result = binding.get_reply(self.method, reply)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/bindings/binding.py" in get_reply
  145.         replyroot = sax.parse(string=reply)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/sax/parser.py" in parse
  136.             sax.parse(source)
File "/usr/lib/python2.6/xml/sax/expatreader.py" in parse
  107.         xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.6/xml/sax/xmlreader.py" in parse
  123.             self.feed(buffer)
File "/usr/lib/python2.6/xml/sax/expatreader.py" in feed
  211.             self._err_handler.fatalError(exc)
File "/usr/lib/python2.6/xml/sax/handler.py" in fatalError
  38.         raise exception

Exception Type: SAXParseException at /businessNames/externalBz1/1/
Exception Value: <unknown>:1:0: syntax error
回溯:
get_响应中的文件“/usr/local/lib/python2.6/dist packages/django/core/handlers/base.py”
111响应=回调(请求,*回调参数,**回调参数)
externalBz1中的文件“/django_projects/ecr/businessNames/views.py”
19结果=doExternalBz1(测试)
doExternalBz1中的文件“/django_projects/ecr/businessNames/models.py”
75结果=client.service.externalBz1(头、体)
调用中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/client.py”__
542返回client.invoke(args、kwargs)
invoke中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/client.py”
602结果=self.send(soapenv)
send中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/client.py”
643结果=self.successed(绑定、回复、消息)
文件“/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py”成功导入
678reply,result=binding.get\u reply(self.method,reply)
get_回复中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/bindings/binding.py”
145replyroot=sax.parse(string=reply)
解析中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/sax/parser.py”
136parse(源代码)
解析中的文件“/usr/lib/python2.6/xml/sax/expatreader.py”
107IncrementalParser.parse(self,source)
解析中的文件“/usr/lib/python2.6/xml/sax/xmlreader.py”
123自进给(缓冲区)
提要中的文件“/usr/lib/python2.6/xml/sax/expatreader.py”
211self.\u err\u handler.fatalError(exc)
fatalError中的文件“/usr/lib/python2.6/xml/sax/handler.py”
38引发异常
异常类型:SAXParseException at/businessNames/externalBz1/1/
异常值::1:0:语法错误
这是直接从日志中得到的,没有提到解析错误:(

有什么想法吗

干杯,
Ben

我没有直接传递结果,而是执行了以下操作,从而消除了错误

sax = suds.sax.parser.Parser()

s_received = str(client.last_received())   # passed "client.last_received()", no error 

s_parse = sax.parse(string=s_received)
而不是像:

x_request = eval(client.service.ListTestAccounts)

result = x_request("1")

sax = suds.sax.parser.Parser()

s_result = str(result)           # passed "result", generated error

s_parse = sax.parse(string=s_result)

希望这能有所帮助。

XML显然是有效的。你确定这是SAXParseException吗?发布堆栈跟踪以显示这一点。我唯一的建议是,传递给解析器的内容与你发布的内容不完全相同。缓冲区开头的额外空白可能会导致这一点。我完全不知道……我粘贴的内容就是显示的内容正在将日志文件中的缓冲区作为接收到的缓冲区。在解析响应之前,是否需要删除额外的空格?是否可以在调试器中运行代码以验证缓冲区内容?