本文目录一览:
怎么安装python 的扩展库-suds?
首先建议你安装一个扩展库安装工具,推荐easy_install工具,你可以在网上下载,也可以先去下载一个 ez_setup.py ,这个程序下载后用python.exe运行一下,会自动根据你的版本帮你下载和安装一个easy_install,目前只支持到python2.6,看来python3目前还是没有太多的公司在使用啊。。。 后面就可以用这个easy_install工具进行第三方库的下载了,比如我要下载soaplib这个库,可以执行easy_install soaplib,它会自己去相关网站查找这个库,以及这个库的依赖,如果你手工安装,那依赖会把你搞疯掉的 关于哪个库更适用做webservice 现在网上查到最多的是ZSI或者叫soappy,实际上05年之后就没有更新了,而且只支持到2.5,放弃 soaplib,这个目前2.0,还是不错的,不过手册不是太好读,只有server端的用法,client我没找到suds,这个我在用,用起来比较简单,示例代码如下:
import suds
url = ""
client = suds.client.Client(url)
print client
The library is now ready to use. We start by importing the suds library, creating a client based on a SOAP url, and asking the library to print the SOAP web service methods that are available to us. From the output of the last print command, we learn that there is a method called FindCountryAsString that takes one argument: the IP address.
print client.service.FindCountryAsString("194.145.200.104")
And it shows (edited for readability):
?xml version="1.0"?
IPAddressService
countryNetherlands/country
/IPAddressService
Normally you want to have the contents of the SOAP body. This is what suds provides in a very elegant way. However, you’re a bit stuck when you want to get something from the SOAP header. The author of suds realised this and made a backdoor to get the information anyway. We start by showing what the function last_received contains:
print client.last_received()
?xml version="1.0" encoding="UTF-8"?
soap:Envelope
soap:Header
ResponseHeader xmlns=""
resultCode1000/resultCode
resultDescriptionSuccess/resultDescription
/ResponseHeader
/soap:Header
soap:Body
...
/soap:Body
/soap:Envelope
We can get portions of this data by doing some XML handling. Let’s say we want to print the resultCode:
print client.last_received().getChild("soap:Envelope").getChild("soap:Header").getChild("ResponseHeader").getChild("resultCode").getText()
python调用suds方法,抛出"对象实例没有设置"的异常,为什么
public MappingMongoConverter mongoConverter() throws UnknownHostException {
MappingMongoConverter converter = new MappingMongoConverter(mongoDbFactory(), mongoMappingContext());
converter.setTypeMapper(mongoTypeMapper());
return converter;
}
python用suds 调用webservice方法的时候报错。
其实用Python进行webservice通信进行数据交换,就是拼接字符串,没必要用第三方的库。