一、安装

  pip install suds

二、日志  

  import logging

logging.basicConfig(level=logging.INFO)

logging.getLogger(“suds.client”).setLevel(logging.DEBUG)

三、基本方法,创建client

  3.1 通过wsdL的url创建一个client实例,获取服务 提供的方法(Methods )及 数量 和 数据类型(types)及 数量

    from suds import Client

    url="http:///www.thomas-bayer.com/axis2/services/BLZService?wsdl”

    client = Client(url)

    print client

    返回如下:

Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913

Service ( BLZService ) tns=”http://thomas-bayer.com/blz/”
           Prefixes (1)
              ns0 = “http://thomas-bayer.com/blz/”
           Ports (2):
              (BLZServiceSOAP11port_http)
                 Methods (1):
                    getBank(xs:string blz, )
                 Types (3):
                        detailsType
                        getBankResponseType
                    getBankType
              (BLZServiceSOAP12port_http)
                    Methods (1):
                        getBank(xs:string blz, )
                    Types (3):
                        detailsType
                        getBankResponseType
                        getBankType

  3.2 简单的的参数调用:

   3.2.1 单个服务器端口的直接调用

      result = client.service.getBack(‘ICBC’)

print result

   3.2.2 多个服务器端口的:

    1、不指定端口的同单个服务器端口直接调用,服务会通过默认的端口处理

    2、选择一个端口指定为默认端口

      client.set_options(prot ='BLZServiceSOAP11port_http')

    3、带服务端口名称的方法:

       result = client.service[‘BLZServiceSOAP11port_http’].getBank(‘ICBC’)

       print result

    4、带服务端口索引的方法:

      result= client。service.[0].getBank('ICBC')

      print result

   3.2.3 多服务与多端口:(类似与多端口的二维情况)

    1、不指定服务器和端口

    2、设置默认的服务和端口:

      client.set_potions(service=’serviceName’, port=’portName’)

    3、带服务名称和端口名称:

      client.service[‘serviceName’][‘portName’].method()

    4、带服务索引和端口索引:

      client.service[serviceIndex][portIndex].method()

  3.3复杂的参数调用:

    1、使用factory.create方法根据wsdl中的格式创建复杂对象(create complex objects )

      例如:http://apisandbox.4pxtech.com:8090/OrderOnline/ws/OrderOnlineService.dll?wsdl  参考文件:fourpx.rar

      中创建复杂对象:createOrderRequest

      order = client.factory.create("createOrderRequest”)

      然后向将order中写入需要的数据,必须的参数minOccurs="1",非必须参数:minOccurs="0"

      将order传给需要createOrderRequest类型参数的方法

      详细参考:https://fedorahosted.org/suds/wiki/Documentation#SERVICESWITHMULTIPLEPORTS 中的FACTORY方法说明

    2、HEADERS(参照HEADERS方法)      

client = client(url)
token = client.factory.create('AuthToken')
token.username = 'Elvis'
token.password = 'TheKing'
client.set_options(soapheaders=token)

    3、COSTOM SOAP HEADERS(参照COSTOM SOAP HEADERS方法)

4、PLUGINS     

    

suds调用webservice的更多相关文章

  1. Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

    使用python的suds包调用webservice服务接口,报错:AttributeError: 'Document' object has no attribute 'set' 调用服务接口代码: ...

  2. python suds 调用webservice 缓存

    在linux系统中 如果webservice更新了字段 suds调用有可能缓存以前的字段或方法,对新的字段报找不到类型 TypeNotFound,或者对 新加的方法找不到该方法的错误. 当更新或添加w ...

  3. python使用suds调用webservice接口

    最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds mac: sudo pip in ...

  4. python使用SUDS调用webservice

    最近做接口对接,遇到了.net开发的webservice接口,因为python第一次与webservice对接,连问带查,最后使用suds库来实现了 1.安装suds mac: sudo pip in ...

  5. python使用suds来调用webservice

    对于python仅作为客户端调用webservice的情况,推荐使用suds库来完成,比起zsi,soapy之类,它可以说是相当轻量级,使用非常方便. 安装suds建议使用easy_insall来做. ...

  6. Python调用Webservice

    使用Python调用webservice 推荐使用 suds包 该包一般在Python2.x   python3各种麻烦 略过 实例 import suds # webservice url url ...

  7. 一个简单的webservice的demo(下)winform异步调用webservice

    绕了一大圈,又开始接触winform的项目来了,虽然很小吧.写一个winform的异步调用webservice的demo,还是简单的. 一个简单的Webservice的demo,简单模拟服务 一个简单 ...

  8. 调用webservice进行身份验证

    因为同事说在调用webservice的时候会弹出身份验证的窗口,直接调用会返回401,原因是站点部署的时候设置了身份验证(账号名称自己配置).因而在调用的时候需要加入身份验证的凭证. 至于如何获取身份 ...

  9. java接口调用——webservice就是一个RPC而已

    很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...

随机推荐

  1. vmware centos6.5 net 配置

    使用NAT模式 虚拟机网络连接使用NAT模式,物理机网络连接使用Vmnet8. 虚拟机设置里面——网络适配器,网络连接选择NAT模式. 虚拟机菜单栏—编辑—虚拟网络编辑器,选择Vmnet8 NAT模式 ...

  2. Rotate List || LeetCode

    /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * } ...

  3. deleteRow

    如果是删除某一行的话,直接delete就可以,行数要在删除之前剪掉,否则会崩溃. 但是,如果section要减一的话,是不能删掉section的 Terminating app due to unca ...

  4. tomcat 设置集群

    本文介绍的是使用tomcat内置的集群功能.跟官方文档的区别是没有使用广播,而是使用了static membership的方式. 需要修改server.xml 放在哪个元素下来的,是Host还是啥记不 ...

  5. asp.net mvc4 设置build项目时,编译view页面

    新建好项目后,把system.web.mvc.dll移除,重新选择本地C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies ...

  6. Unity基于响应式编程(Reactive programming)入门

    系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...

  7. C++学习笔记(1)——数据类型占空间大小

    boolean bool 1 byte   character char 1 byte May be signed or unsigned   wchar_t 1 byte     char16_t ...

  8. mysql中and和or

    and的优先级高于or,所以一个sql语句中如果and和or同时出现,则or要加括号

  9. 详解 Array.prototype.slice.call(arguments)

    首先,slice有两个用法,一个是String.slice,一个是Array.slice,第一个返回的是字符串,第二个返回的是数组 在这里我们看第二个方法 1.在JS里Array是一个类 slice是 ...

  10. SSH 无密码远程执行脚本

    ssh无密码登录及远程执行脚本要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS7为例. 测试环境:机器A(10.0.224.80):机器B(192.16 ...