程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

SOAPpy中的名称空间无法按预期工作

发布于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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)