对于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="http://test.server.enterprise.rhq.org/"
Prefixes (1):
ns0 = "http://test.server.enterprise.rhq.org/"
Ports (1):
(Soap)
Methods:
addPerson(Person person, )
echo(xs:string arg0, )
getList(xs:string str, xs:int length, )
getPercentBodyFat(xs:string name, xs:int height, xs:int weight)
getPersonByName(Name name, )
hello()
testExceptions()
testListArg(xs:string[] list, )
testVoid()
updatePerson(AnotherPerson person, name name, )
Types (23):
Person
Name
Phone
AnotherPerson
1.简单参数调用
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.
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 = 1212
name = client.factory.create('Name')
name.first = 'Elmer'
name.last = 'Fudd'
person.name = name
person.age = 35
person.phone = [phone]
#或者
person.phone.append(phone)
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
3.异常处理
client = client(url, faults=False)
result = client.service.addPerson(person)
print result
( 200, person ...)
更多可以查看官方文档:https://fedorahosted.org/suds/wiki/Documentation,里面还讲了soap头得安全认证,webservice cache等高级话题,有需要可以查看,都比较详细。
分享到:
相关推荐
### Python使用Suds调用WebService接口的方法详解 在软件开发过程中,经常需要不同系统或平台之间进行通信,其中一种常用的方式就是使用WebService。本文将详细介绍如何利用Python中的Suds库来实现与WebService接口...
### Python调用WEBSERVICE接口知识点详解 #### 一、基础知识概述 1. **Web Service**:一种跨编程语言和操作系统平台的远程调用技术,它通过HTTP协议提供服务,可以被任何其他系统调用。 2. **SOAP(Simple Object...
在本文中,我们将深入探讨Python Suds库的核心功能、使用场景以及如何通过它来调用Web服务接口。 首先,让我们了解SOAP。SOAP是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。它提供了标准的方式来封装...
通过上述内容,我们了解到如何使用Python结合Suds库来调用WebService接口。这种方式不仅简化了跨系统通信的过程,而且提供了灵活且强大的数据交互能力。此外,通过示例代码的学习,可以更好地理解如何在实际项目中...
Python调用WebService接口是一种常见的数据交互方式,尤其在分布式系统和跨平台通信中。WebService接口通常基于SOAP(Simple Object Access Protocol)协议,提供了一种标准化的方式来交换结构化信息。在Python中,...
在Python 3环境下,由于官方的suds库可能无法正常工作,因此推荐使用suds-py3这个分支版本。你可以通过以下命令安装: ```bash pip install suds-py3 ``` 一旦安装完成,你可以开始使用SUDS访问Web Service。首先...
2. **Python**:可以使用`zeep`库或`suds-jurko`库来调用WebService。 3. **C#**:可以利用.NET Framework提供的`System.Web.Services.Protocols.SoapHttpClientProtocol`类或使用WCF(Windows Communication ...
关于 suds for Python3.x 的使用,开发者可以利用它来创建 SOAP 客户端,调用远程 Web 服务提供的功能。首先,需要安装 suds-jurko 库,通常通过 pip 命令进行: ```bash pip install suds-jurko ``` 安装完成后,...
4. **SOAP客户端库**:大多数编程语言都有对应的SOAP客户端库,如Java的JAX-WS,Python的suds,PHP的SoapClient等,它们简化了动态调用Web Service的过程。开发者只需要提供WSDL地址,库会自动生成对应的调用方法。 ...
4. **调用过程**:使用编程语言(如Java的JAX-WS,Python的suds库,或.NET的SoapHttpClient)创建一个客户端,这个客户端能够解析WSDL并生成对应的代理类。通过这些代理类,我们可以构造并发送SOAP请求,然后接收并...
在Python中,可能会用到suds库;在.NET环境下,可能使用了System.ServiceModel命名空间的相关类。 总的来说,Web服务和SOAP调用是分布式系统中实现互操作性的重要手段,而积分接口则是一个具体的业务应用场景,它让...
开发者可以通过SUDS调用SOAP服务,通过wxPython构建用户界面,通过logging模块跟踪应用状态,以及使用base64处理二进制数据。这样的客户端可以作为一个通用工具,适应各种基于SOAP的Web服务,提高开发效率并简化与...
1. **解析WSDL**:使用XML解析库(如Java的JAXB或wsimport,Python的suds等)解析WSDL文件,生成服务代理类或客户端 stub。这些类提供了与服务交互的方法。 2. **创建服务实例**:使用解析WSDL得到的类,创建服务...
例如,可以使用Java的JAX-WS库、C#的SoapHttpClient类或者Python的suds库来调用Web Service。 在处理Web Service的响应时,要关注异常处理。当服务端返回错误状态码或异常信息时,客户端需要有能力捕获并处理这些...
本文将详细介绍如何使用Python3进行WebService接口测试,并重点讲解suds-jurko这一第三方库的使用方法。通过实际代码示例,帮助读者更好地理解和掌握测试过程。 #### 二、suds-jurko简介与安装 ##### 1. 什么是suds...
3. **发送请求**:使用编程语言(如Java、Python、C#等)中的库或框架(如Apache CXF、Python的suds库、C#的System.ServiceModel命名空间)来发送SOAP请求。这些库可以简化SOAP请求的构建和发送过程。 4. **解析...
- 安装必要的库或框架,比如对于SOAP调用可能需要`suds-jurko`,对于REST调用则可能需要`requests`。 - 分析并理解示例代码,了解如何构建请求和解析响应。 - 如果示例包含配置文件或API密钥,确保正确配置以访问Web...
4. Python的suds库:Python中用于调用SOAP服务的库。 五、安全性与优化 1. SSL/TLS:使用HTTPS协议保证传输过程的安全性。 2. 认证机制:如基本认证、Digest认证、WS-Security等,确保只有授权的客户端可以访问...