A-A+
python soap协议库 zeep 各种问题解决方法

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
注意,以下报错都是在python3环境下报错的。
问题一:报错“zeep.exceptions.Fault: Unknown fault occured”
1 2 3 4 5 6 7 8 9 10 11 12 | Traceback (most recent call last): File "E:/test/ddddddddddddd.py", line 51, in new_vlan = clientVlan.service.createIpObject(args) #createIpObject File "E:\Python37\lib\site-packages\zeep\proxy.py", line 42, in __call__ self._op_name, args, kwargs) File "E:\Python37\lib\site-packages\zeep\wsdl\bindings\soap.py", line 132, in send return self.process_reply(client, operation_obj, response) File "E:\Python37\lib\site-packages\zeep\wsdl\bindings\soap.py", line 194, in process_reply return self.process_error(doc, operation) File "E:\Python37\lib\site-packages\zeep\wsdl\bindings\soap.py", line 288, in process_error detail=etree_to_string(doc)) zeep.exceptions.Fault: Unknown fault occured |
出现这个问题是因为你代码认证写的有问题。
不应该使用【UsernameToken(username, password)】 这是错误的。你应该使用session.auth = HTTPBasicAuth(username, password)方式登录。
其实就是服务器返回401 Unauthorized了。
问题二:报错“AttributeError: 'NoneType' object has no attribute 'promotePrefixes'”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Traceback (most recent call last): File "E:/test/test3.py", line 12, in new_vlan = clientServerObj.service.createIpObject(args) File "E:\Python37\lib\site-packages\suds\client.py", line 559, in __call__ return client.invoke(args, kwargs) File "E:\Python37\lib\site-packages\suds\client.py", line 618, in invoke result = self.send(soapenv) File "E:\Python37\lib\site-packages\suds\client.py", line 658, in send result = self.succeeded(binding, reply.message) File "E:\Python37\lib\site-packages\suds\client.py", line 696, in succeeded reply, result = binding.get_reply(self.method, reply) File "E:\Python37\lib\site-packages\suds\bindings\binding.py", line 150, in get_reply soapenv.promotePrefixes() AttributeError: 'NoneType' object has no attribute 'promotePrefixes' |
你使用的应该是Python3 然后使用了suds-py3库,千万不要使用这个库,这个库不健全,获取post接口的server 地址没有获取到,错误导致的。
所以换库吧,个人推荐你使用zeep 或者 suds-jurko 最好是前者。
有任何问题欢迎随时留言。
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏