发布于2020-02-25 19:55 阅读(780) 评论(0) 点赞(20) 收藏(5)
我在与Axis2上运行的SOAP API正确接口时遇到问题:
发生的情况是,我应该使用两个参数(loginName和password)调用login方法,并且它返回一个身份验证令牌,该令牌将用于后续交互。
#!/usr/bin/python
from SOAPpy import SOAPProxy
s_user = 'Administrator'
s_pass = 'securityThroughObscurity'
s_host = '192.168.76.130:8998'
namespace = 'http://bcc.inc.com/IncSecurity'
url = 'http://' + s_host + '/axis2/services/IncSecurityService'
DHCPServ = SOAPProxy(url, namespace)
DHCPServ.config.dumpSOAPOut = 1
DHCPServ.config.dumpSOAPIn = 1
DHCPResp = DHCPServ.login(loginName=s_user, password=s_pass)
另一侧的Axis2服务器返回XML错误声明Data element of the OM Node is NULL
。查看Axis2日志,我看到错误是adb_login.c(383) non nillable or minOuccrs != 0 element loginName missing
然后,我login
从已知的运行中的Java客户端捕获了XML 包,并从该客户端捕获了XML 包,这是两者之间的区别:
SOAPpy:
<ns1:login xmlns:ns1="http://bcc.inc.com/IncSecurity" SOAP-ENC:root="1">
<password xsi:type="xsd:string">securityThroughObscurity</password>
<loginName xsi:type="xsd:string">Administrator</loginName>
</ns1:login>
Java:
<ns2:login xmlns:ns2="http://bcc.inc.com/IncSecurity">
<ns2:loginName>Administrator</ns2:loginName>
<ns2:password>securityThroughObscurity</ns2:password>
</ns2:login>
因此,这意味着由于某种原因(可能与我对Python和SOAPpy的了解不足有关),该名称空间并未应用到该login
方法中使用的变量,因此,由于所有原因,它们实际上并不存在,并且保证了错误。
另外,这似乎是在翻转变量并将密码放在loginName之前,但我认为这并不重要。
我究竟做错了什么?
看起来这是SOAPPy中的已知错误,有人建议了一个简单的补丁程序:http ://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523083
或者(假设您有权访问服务WSDL),SOAPPy允许您指定WSDL而不是仅命名空间。看起来它将为信封生成代码提供更好的名称空间信息。http://diveintopython.net/soap_web_services/introspection.html
最后,如果SOAPPy不适用于您,请尝试使用Suds(比SOAPPy 记录得更好)。
from suds.client import Client
from suds.wsse import *
client = Client(WSDL_LOCATION)
guid = client.service.someFunctionName("a string argument", 42)
祝好运!
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/233625/a1ce9cb55adc852bb8df/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!