![](/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.