我尝试使用python中的SUDS访问soapapi
from suds.client import Client
def initialize():
url = 'http://uuuuuuuuuuuuuuu.com/wewewe/WsNBI?wsdl'
username = 'xxxxx'
password = 'ppppppp'
client = Client(url)
print client
result = client.service.Login(nbiLogin NBILogin(username,password),)
print result
我不能调用Login方法,你知道我该怎么做吗?在
这些是查询返回的方法。。。在
^{pr2}$更新:
#!/usr/bin/env python
from suds.client import Client
def initialize():
url = 'http://xxxxxxx/xxxx/WsNBI?wsdl'
username = 'xxxxx'
password = 'pppppp'
client = Client(url)
login = client.factory.create("ns0:NBILogin")
print login
ws = login.nbiLogin(userName=username, password = password)
result = client.service.Login(ws)
print result
def main():
initialize()
if __name__ == "__main__":
main()
[root@server scripts]# ./flex_soap.py
(nbiLogin){
UserName = None
Password = None
}
Traceback (most recent call last):
File "./flex_soap.py", line 19, in ?
main()
File "./flex_soap.py", line 16, in main
flexMaster()
File "./flex_soap.py", line 12, in flexMaster
ws = login.nbiLogin(userName=username, password = password)
AttributeError: nbiLogin instance has no attribute 'nbiLogin'
更新:
#!/usr/bin/env python
from suds.client import Client
def initialize():
url = 'http://xxxxx/intune/WsNBI?wsdl'
username = 'uuuuu'
password = 'pppp'
client = Client(url)
print client
login = client.factory.create("ns0:NBILogin")
print login
login.UserName = username
login.Password = password
result = client.service.Login(login)
print result
event = client.factory.create("ns0:EventReqData")
print event
def main():
initialize()
if __name__ == "__main__":
main()
[root@server scripts]# ./flex_soap.py
(nbiLogin){
UserName = None
Password = None
}
(authenticateResult){
Success = True
Session =
(nbiSession){
Id = "0eda1622-473c-4dd6-b68e-4ff3c1ee27f6"
}
}
(eventReqData){
EventType =
(eventType){
value = None
}
SerialNumbers =
(SerialNumbers){
SerialNumber[] = <empty>
}
}
你知道我怎么得到这个方法吗
GetEvent(nbiSession NBISession, eventReqData EventReqData, )
您的代码不是有效的Python。
Login(nbiLogin NBILogin, )
表示有一个方法Login
,它接受NBILogin
类型的单个参数。它不是你应该使用的字面语法。试试这样的方法:此输出:
^{pr2}$意思是
result.Success == True and result.Session.Id == "0eda1622-473c-4dd6-b68e-4ff3c1ee27f6"
。在GetEvent(nbiSession NBISession, eventReqData EventReqData, )
意味着您需要两个类型为NBISession
和EventReqData
的参数。在您可以从
result
获得的会话。要生成EventReqData
,请执行以下操作:您需要创建
EventType
和SerialNumbers
:上面假设序列号是整数,否则每个
SerialNumber
与所有其他对象一样通过client.factory.create()
创建:我在清单中没有看到
SerialNumbers
,SerialNumber
类型,所以它可能会失败。在如果sud本身不能从字符串转换为}:
EventType
,那么可以使用client.factory.create()
显式地创建{打电话:
相关问题 更多 >
编程相关推荐