![](/img/trans.png)
[英]Python & Suds. How can I get all required parameters of a webservice using suds?
[英]How to connect to webservice using suds?
我想连接到一个名为e-conomic的网络服务,以便将我网站上的数据与电子记录簿记系统同步。 但我一开始就陷入了如何开始连接的问题。
我有一个电子版帐户,用户名和密码,我安装了suds库来拨打电话:
>>> from suds.client import Client
>>> c = Client('https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL')
>>>
那又怎样?
我的应用程序中的代码才刚刚启动,我不知道如何在SOAP请求中指定我的帐户:
from suds.client import Client
class Economic(NewBaseHandler):
def get(self):
url = 'https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL'
client = Client(url)
self.response.out.write('client: %s' % str(client))
你能告诉我怎么办吗?
您必须使用Client
的service
方法调用Web service
。
>>> from suds.client import Client
>>> c = Client('https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL')
>>> c.service.Account_Create(10, '20', 'ProfitAndLoss')
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 240, in __call__
return target.call(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 379, in call
return method(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 240, in __call__
return target.call(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 422, in call
return client.invoke(args, kwargs)
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 480, in invoke
result = self.send(msg)
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 511, in send
result = self.failed(binding, e)
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 562, in failed
r, p = binding.get_fault(reply)
File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/bindings/binding.py", line 226, in get_fault
raise WebFault(p, faultroot)
WebFault: Server raised fault: 'Economic.Api.Exceptions.AuthenticationException(E02250): User is not authenticated. Access denied. {id=131496672}'
我收到此错误,因为用户未经过身份验证。 可能存在一些服务或某些密钥,用于对用户进行身份验证。 您需要该密钥,然后您可以调用服务。
#Works only in 2.7 Python. Does not work in Python 3.0 version
from suds.client import Client
from suds.sax.text import Raw
client = Client('https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL')
xml = Raw('--Paste your entire xml --')
Response_XML= (client.service.MethodName(__inject={'msg':xml}))
- 您将在Response_XML变量中获取所有xml响应
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.