首页 > 编程知识 正文

python调用suds方法,suds Python

时间:2023-12-28 11:57:00 阅读:328105 作者:ADUD

本文目录一览:

怎么安装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,这个我在用,用起来比较简单,示例代码如下:

[python] view plain copy

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.

import suds

url = ""

client = suds.client.Client(url)

print client

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通信进行数据交换,就是拼接字符串,没必要用第三方的库。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。