使用soaplib连接缺乏定义的远程SOAP服务器

2 投票
1 回答
886 浏览
提问于 2025-04-15 14:03

我在研究soaplib这个Python模块(它是标准的Ubuntu 9.04自带的)。过去几年我主要使用xmlrpclib,现在我对soap产生了兴趣。用soaplib写服务器还算简单,我想写客户端应该更容易。

不过我有点急,找不到使用反射的方法。难道我真的需要把服务器里的每一个方法都描述一遍,才能定义客户端吗(http://trac.optio.webfactional.com/wiki/Client)?

我觉得这很难相信,但我找不到包含我三个搜索词的有用网页:python soap introspect...

所以我的问题是:我能否仅凭知道的URL,使用Python soaplib访问任何远程网络服务?我该怎么做呢?

是我理解错了,还是这个库缺少什么?

1 个回答

1

如果我理解你的问题没错的话,你是想为一个特定的网络服务生成客户端代码,而不需要在自己的代码里直接定义这个服务有哪些方法?也就是说,你希望能够自动分析这个服务并生成客户端代码。

如果是这样的话,你需要使用soaplib这个库。具体来说,你会对一个最近贡献的脚本感兴趣,这个脚本可以根据一个WSDL文件生成Python类,来作为特定服务的客户端。soaplib里有一些脚本可以让你以静态的方式生成类(也就是生成一个.py模块并写入磁盘),还有动态的方式生成类,这样这些类只在你的程序运行时存在。

希望这些信息对你有帮助。

撰写回答