`
xiaolin0199
  • 浏览: 573210 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

python之soap(soaplib(server),suds(client))

 
阅读更多

如何用python实现soap协议并搭建webservice

 

网上搜索了一番,用python实现soap的库有好几个,soappy,soaplib,suds等。但是SOAPpy这个库已经好几年没人去维护更新了,所以不予考虑,而suds这个库用来构建soap服务端比较麻烦,所以最终锁定soaplib来实现服务端发布,而用suds实现客户端获取;

 

第一步:安装soaplib

 

http://pypi.python.org/pypi/soaplib/0.8.1

写道
安装挺简单的:下载后解压进入到目录soaplib-0.8.1,
--> sudo python setup.py install即可
安装后在我本机的路径是在:/usr/local/lib/python2.6/dist-packages/下

 

    * 想要运行soaplib还必须依赖 libxml2及libxslt这二个包;google之后总结以下安装过程

 

第二步:安装libxml2

写道
1. wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.7.8.tar.gz
2. tar -xvzf libxml2-sources-2.7.8.tar.gz
3. cd libxml2-2.7.8
4. ./configure --prefix=/usr/local/libxml2
5. make
6. sudo make install

    

    * 当一切都没有错的时候,你会在/usr/local里看到生成一个libxml2的文件夹

 

第三步:安装libxslt

写道
1. wget ftp://xmlsoft.org/libxslt/libxslt-1.1.26.tar.gz
2. tar -xvzf libxslt-1.1.26.tar.gz
3. cd libxslt-1.1.26
4. ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2/
5. make
6. sudo make install

    

    * 当一切都没有错的时候,你会在/usr/local里看到生成一个libxslt的文件夹

 

第四步:复制文件

写道
将libxml2及libxslt文件夹复制到soaplib文件夹下,即/usr/local/lib/python2.6/dist-packages/soaplib-0.8.1-py2.6.egg/soaplib

 

    至此,你可以使用soaplib开始来发布你的webservice了

 

    . 下面是一个简单的'hello world'的server.py及client.py

#server.py

from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array
from soaplib.wsgi_soap import SimpleWSGISoapApp
   
class HelloWorldService(SimpleWSGISoapApp):
    @soapmethod(String, _returns=String)
    def says(self,name):     
        return name


if __name__=='__main__':

    try:
        from wsgiref.simple_server import make_server
        server = make_server('192.168.0.219', 7889, HelloWorldService())
        print "listening on 0.0.0.0:7889"
        server.serve_forever()
    except ImportError:
        print "Error: example server code requires Python >= 2.5"

 

 

    . soaplib实现client

#client.py
from server import HelloWorldService

def make_client():
    from soaplib.client import make_service_client
    client = make_service_client('http://192.168.0.219:7889', HelloWorldService())
    return client   
a = make_client()    
print a.says('hello,world') 

 

   

   . 下面看看suds如何实现client

  https://fedorahosted.org/releases/s/u/suds/python-suds-0.4.tar.gz

写道
安装也同soaplib很简单,解压进入目录,--> sudo python setup.py install即可
安装后在我本机的路径是在:/usr/local/lib/python2.6/dist-packages/下

 

#client.py

from suds.client import Client
url = "http://192.168.0.219:7889?wsdl"
client = Client(url)
print client.service.says('hello world')

 

 

  . 通过比较可以看出,用suds更简洁更方便,

  .https://fedorahosted.org/suds/wiki/Documentation

 

分享到:
评论

相关推荐

    python-suds-0.4.tar.gz_python webservice_python-suds_suds_suds p

    Python Suds库是用于Python开发的一个重要工具,它允许开发者轻松地与SOAP(Simple Object Access Protocol)服务进行交互。在本文中,我们将深入探讨Python Suds库的核心功能、使用场景以及如何通过它来调用Web服务...

    python使用suds调用webservice接口的方法

    最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds  mac: sudo pip install suds  linux: easy_install suds 也可以通过去官网...

    suds for Python3.x

    suds 是一个开源的 SOAP 客户端,它为 Python 提供了与 SOAP 服务交互的能力。SOAP(简单对象访问协议)是一种基于 XML 的协议,用于交换结构化信息,常用于 Web 服务通信。 描述中提到,Python3.x 访问 WebService...

    suds-jurko-0.6.zip

    SUDS(Simple Unix Domain SOAP)是一个强大的Python库,用于与SOAP(简单对象访问协议)服务进行交互。本文将详细探讨SUDS的一个特定版本——SUDS-Jurko 0.6,以及如何利用它来实现Python中的Web服务调用。 SUDS-...

    python-suds-0.4.1.tar.gz

    Python-suds是一个Python库,用于与SOAP(Simple Object Access Protocol)服务进行交互。SOAP是一种基于XML的协议,常用于在不同应用程序之间交换数据。suds库由David Boring开发,旨在提供一个轻量级且易于使用的...

    suds xsd 包

    `suds` 是一个 Python 库,用于与 SOAP (Simple Object Access Protocol) 服务进行交互。SOAP 是一种基于 XML 的协议,常用于Web服务,允许不同系统间的远程调用和数据交换。在Python社区中,suds 提供了一个简单且...

    python调用WEBSERVICE接口

    1. **suds**:一个用于Python的SOAP客户端库,能够解析WSDL文件并自动生成可以使用的Python类。 2. **base64**:用于将二进制数据转换为文本字符串的编码方式,常见于传输二进制数据时的编码需求。 #### 三、详细...

    sudsssltransport:用于 Python 的 Suds SOAP 库的健全的、可验证证书的 http 传输

    Suds是Python中一个轻量级的SOAP客户端库,由John Soderling开发,它使得与SOAP服务进行交互变得简单易行。然而,原版的Suds库在处理SSL证书时存在一些限制,例如无法进行证书验证,这可能导致安全问题。为了解决这...

    python suds访问webservice服务实现

    Python中的SUDS库是用来访问和操作Web Service的工具,特别适用于SOAP协议。SUDS是Simple SOAP Client的缩写,由John Watkinson开发。它允许Python开发者方便地调用远程Web Service,处理复杂的XML数据,并且提供了...

    Python 调动web接口包

    在与外部系统交互时,Python提供了丰富的库来调用各种Web接口,其中之一就是`suds`库。本篇文章将深入探讨如何使用Python的`suds`包来调用Web服务接口。 `suds`是一个Python客户端库,用于与SOAP(Simple Object ...

    Suds Sync Error调试

    Suds项目已经停止维护,社区推荐使用更新的库如Zeep、suds-jurko或python-soap-client等。这些库提供了更好的错误处理和更现代的API,可能能更好地解决兼容性问题。 最后,如果错误依然存在,可以尝试在代码中添加...

    python WebService Client

    SUDS是Simple Python SOAP客户端的缩写,它为Python开发者提供了一个简单的方法来调用SOAP(Simple Object Access Protocol)服务。SOAP是一种在Web上交换结构化和类型化的信息的协议,常用于构建Web服务。 首先,...

    Python调用WebService接口实例说明

    Suds是一个轻量级的SOAP-based Python客户端库,它支持LGPL许可。该库主要用于简化SOAP协议下的服务调用流程。在本文档中,我们将详细介绍使用Suds库进行WebService调用的具体步骤。 #### 配置文件与引用 为了实现...

    Python3 webservice接口测试代码详解

    suds-jurko是一个用于Python的SOAP Web服务客户端库。它可以帮助开发者轻松地与WebService交互,特别适合于那些需要与提供SOAP接口的服务进行通信的应用场景。suds-jurko支持多种Python版本,包括Python3,并且提供...

    python读取wcf服务

    from suds.client import Client url = 'http://localhost:8732/Design_Time_Addresses/YourNamespace/CardReaderService/Service.svc?wsdl' client = Client(url) card_number = client.service.ReadCardNumber() ...

    使用 python 开发 Web Service安装包之SOAPpy-0.12.0.zip

    在Python编程环境中,开发Web服务通常涉及使用各种库和框架,其中之一便是SOAPpy。SOAPpy是一个用于构建和消费SOAP(Simple Object Access Protocol)服务的Python库。SOAP是一种基于XML的协议,广泛用于分布式应用...

    WebServiceClient

    1. **suds库**:suds是Python中一个流行的SOAP客户端库,它允许开发者通过简单的API调用来与SOAP Web服务进行通信。SOAP(Simple Object Access Protocol)是一种用于交换结构化信息的协议,常用于Web服务。suds库...

    SOAP消息和WSDL

    在Python中,有suds库可以方便地生成和解析SOAP消息。在创建SOAP消息时,需要确保XML结构符合SOAP规范,并正确设置请求的Action、Namespace和SOAPAction头等信息。 WSDL(Web Services Description Language)则是...

    suds-开源

    总的来说,Suds为Python开发者提供了一个强大且易于使用的工具,极大地简化了SOAP服务的客户端开发,使其成为Python与SOAP服务交互的标准选择之一。通过深入理解和应用Suds,你可以更加高效地整合远程系统和服务,...

Global site tag (gtag.js) - Google Analytics