欢迎访问宙启技术站
智能推送

Python中zeep库的使用指南

发布时间:2023-12-27 16:17:04

Zeep是一个用于SOAP网络服务的Python库。它可以用于调用远程方法,解析返回的XML响应并构建适当的请求。下面是Zeep库的使用指南。

1. 安装Zeep库

首先,您需要使用pip工具安装Zeep库。打开终端窗口并运行以下命令:

pip install zeep

2. 导入Zeep库

导入Zeep库以便在代码中使用它:

from zeep import Client

3. 创建并配置客户端

创建一个Zeep客户端对象并指定要调用的SOAP服务的URL:

client = Client('http://www.example.com/soap/service?wsdl')

如果需要使用HTTP身份验证或代理设置,可以添加相应的参数:

client = Client(
    'http://www.example.com/soap/service?wsdl',
    wsse=UsernameToken('username', 'password'),
    transport=Transport(proxy='http://proxy.example.com:8080')
)

4. 调用远程方法

使用客户端对象调用远程方法。首先,您需要获取服务对象,然后可以使用该对象调用具体的方法。例如:

service = client.service
response = service.method_name(param1=value1, param2=value2)

5. 解析响应

Zeep将响应解析为Python对象,可以使用属性和方法访问其内容:

print(response.status_code)
print(response.message)

6. 构建请求

如果需要构建复杂的SOAP请求,可以使用Zeep的内置XML构建器。可以使用factory属性访问要使用的对象。例如:

request = client.factory.create('SomeRequestType')
request.param1 = value1
request.param2 = value2

7. 支持的类型

Zeep支持多种类型的数据,包括字符串、整数、浮点数、日期、时间和复杂类型。可以使用client.get_type方法获取某个类型的定义,然后使用该类型构建请求对象。例如:

from zeep.xsd import complex_type

SomeComplexType = client.get_type('ns0:SomeComplexType')
complex_object = SomeComplexType(param1=value1, param2=value2)

8. 处理异常

在调用远程方法时,可能会发生异常。您可以使用tryexcept语句来处理这些异常:

try:
    response = service.method_name(param1=value1, param2=value2)
except Fault as error:
    print(error)

这样,您就可以使用Zeep库调用远程SOAP服务并处理响应了。

以下是一个完整的示例,演示了如何使用Zeep库调用SOAP服务:

from zeep import Client

# 创建并配置客户端
client = Client('http://www.dneonline.com/calculator.asmx?WSDL')

# 调用远程方法
service = client.service
result = service.Add(5, 10)

# 解析响应
print(result)

这个示例使用Zeep库调用一个名为"Add"的远程方法,并将两个参数5和10传递给它。然后它打印出响应的结果。

希望这个Python中Zeep库使用指南对您有所帮助!