Python的WebService客戶端:Suds
"Suds"是一個輕量級,Python的SOAP Web service 客戶端。
對于python僅作為客戶端調用webservice的情況,推薦使用suds庫來完成,比起zsi,soapy之類,它可以說是相當輕量級,使用非常方便。
安裝suds建議使用easy_insall來做。下面是官方的一些例子:
from suds.client import Client url = 'http://localhost:7080/webservices/WebServiceTestBean?wsdl' client = Client(url)查看該service提供的方法
print client
Suds - version: 0.3.3 build: (beta) R397-20081121
Service (WebServiceTestBeanService) tns="result = client.service.getPercentBodyFat('jeff', 68, 170) print result
result = client.service.getPercentBodyFat(name='jeff', height=68, weight=170) print result
詞典
d = dict(name='jeff', height=68, weight=170) result = client.service.getPercentBodyFat(**d) print result
You have 21% body fat.</pre>
2.復雜參數
person = client.factory.create('Person') print person
(Person)= { phone = [] age = NONE name(Name) = { last = NONE first = NONE } }#設置變量
phone = client.factory.create('Phone') phone.npa = 202 phone.nxx = 555 phone.number = 1212name = client.factory.create('Name') name.first = 'Elmer' name.last = 'Fudd'
person.name = name person.age = 35 person.phone = [phone]或者
person.phone.append(phone)</pre>
try: person_added = client.service.addPerson(person) except WebFault, e: print e在0.3.8以上版本還提供了更簡單的調用方式,完美的json
![]()
person = {}根據對象結構構造json
phone = { 'npa':202, 'nxx':555, 'number':1212, }
name = { 'first':'Elmer', 'last':'Fudd' }
person['name'] = name person['age'] = 35 person['phone'] = [phone,]
try: person_added = client.service.addPerson(person) except WebFault, e: print e</pre>
3.異常處理
client = client(url, faults=False) result = client.service.addPerson(person) print result ( 200, person ...)https://bitbucket.org/jurko/suds