1、suds的client获取webService封装的数据,URL为http:// **?WSDL形式
from suds.client import Client
import sys
def get_data():
reload(sys)
sys.setdefaultencoding('utf-8')
url = 'http://**?WSDL'
client = Client(url)
# print client
begin_date="2013-09-05 00:00:00"
end_date="2013-09-06 23:59:59"
Mheader=client.factory.create('MsgHeader')
Mheader.SOURCE_SYSTEM_ID="TOMAS"
Mheader.SOURCE_SYSTEM_NAME="TOMAS"
Mheader.USER_ID="TOMAS"
Mheader.USER_NAME="TOMAS"
Mheader.SUBMIT_DATE=datetime.now().strftime("%Y-%m-%d")
InputInfo=client.factory.create('Input')
InputInfo.PAGE_SIZE=500
InputInfo.REPAIR_DATE_FROM=begin_date
InputInfo.REPAIR_DATE_TO=end_date
result=client.service.process(Mheader,InputInfo)
for i in range(0,7):
print result[i]
}
2、这里可以把上面程序中的client中的内容打印出来,如下所示:
Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913
Service ( ** ) tns="http:**"
Prefixes (3)
ns0 = "http://**"
ns2 = "http://**"
ns3 = "http://**"
Ports (1):
(**)
Methods (1):
process(ns3:MsgHeaderMsgHeader, ns0:InputInput, )
Types (4):
ns0:Input
ns3:MsgHeader
OutputItem
ResponseCollection
从client打印出来的内容可知,webService封装了一个方法process,该方法有两个输入参数,即上面程序中的MsgHeader和Input,创建实例client.factory.create('MsgHeader'),这两个参数相当于结构体类型,结构体具体包含的内容与封装webService接口的人沟通,这样通过process方法可以获得设置输入参数对应的输出(可能包括很多信息,例如处理状态信息、数据),接下来就可以对数据进行处理了。