美文网首页
SOAP协议及Python调用

SOAP协议及Python调用

作者: xieyan0811 | 来源:发表于2018-08-05 20:42 被阅读839次

1. 什么是SOAP协议

 SOAP 是一种简单的基于 XML 的协议,它底层通过 HTTP 来交换信息。SOAP的优点是可以传递结构化的数据。
 客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器。Web服务器再把这些请求转发给Web service请求处理器,它解析收到的SOAP请求,调用Web service,处理后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。
 从HTTP协议的角度看,最基本的四种操作是GET(查),POST(改),PUT(增),DELETE(删),我们用的比较多的是POST和GET方式。而SOAP 可视为POST的一个专用版本,遵循一种特殊的XML消息格式。
 最常见的场景是:Server端使用了SOAP协议,而Client端也必须遵从该协议才能交互,本文介绍一下,如何在Client端使用SOAP协议,以及如何配置SOAP测试环境。

2. 什么是WSDL

 网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。
 简单的说,它就是一个Web Services的使用说明书。来看一个实例:
http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
这是一个查询电话号码的接口描述,WSDL教程详见参考部分。

3. Python使用SOAP协议

(1) 安装支持库

 如果开发服务端,可使用soaplib,SOAPpy等库,本文主要介绍开发客户端,使用suds库。
 在python2中使用以下命令安装:

$ sudo pip install suds

 在python3中使用以下命令安装:

$ sudo pip install suds-py3

(2) 程序调用

from suds.client import Client

client = Client('http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl')
print(client.service.getMobileCodeInfo('13581855347',''))

 这是一个查询电话号码所在地的程序。

4. 搭建测试环境SOAPUI+WSDL

 SoapUI是专门针对webservice接口的测试工具,它即可以模拟Client,也可以模拟Server。下面是在Ubuntu上安装SOAPUI的方法。

(1) 下载SOAPUI

https://www.soapui.org/downloads/latest-release.html

(2) 安装

$ sudo ./SoapUI-x64-5.4.0.sh
$ sudo SoapUI-5.4.0 # 运行

(3) 作为Server端测试

 在Projects上点右键,选择New SOAP Project,Project Name启一个名字,Initial WSDL中填写http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl新建一个Project,当然也可以参考例子编写自己的接口。
 在MobileCodeWSSoap12上,点右键Generate SOAP Mock Service,按提示建立Service,然后点绿色键头运行。

 此时,打开http://127.0.0.1:8088/,能看到Service已被启动,把上面python上的测试的IP换成本机地址,也可正常运行了。

5. 参考

(1) suds调用webserive时出现suds.TypeNotFound错误

http://www.mamicode.com/info-detail-2324352.html

(2) WSDL 教程

http://www.w3school.com.cn/wsdl/

相关文章

  • SOAP协议及Python调用

    1. 什么是SOAP协议  SOAP 是一种简单的基于 XML 的协议,它底层通过 HTTP 来交换信息。S...

  • gsoap --- qq状态查询程序

    一、gSoap简介 1.1、soap协议 介绍gsoap需要先了解soap协议,soap名叫简单对象访问协议,是交...

  • SOAP

    ** 什么是 SOAP? ** SOAP 指简易对象访问协议 SOAP 是一种通信协议 SOAP 用于应用程序之间...

  • Android WebService请求

    本篇文章不涉及更深的知识,知识帮助你调用WebService 1:Webserver它的请求协议Soap1.2协议...

  • 01webService

    IP查询服务的SOAP协议---请求部分 IP查询服务的SOAP协议---响应部分 京东的HTTP协议 WSDL(...

  • 调用SOAP协议的WebService接口

    使用axis.jar

  • Asp.net Core 调用Web Service

    1.引言 .net core 使用自动生成的代理类调用soap 协议的WebService的方式。 2.问题描述 ...

  • 《全栈工程师修炼指南》学习笔记 2

    SOAP 即简单对象访问协议,定义了数据对象传输的格式。 HTTP 协议关心数据的传输过程,而 SOAP 协议则关...

  • SOAP协议

    # SOAP简介# #什么是SOAP SOAP(Simple Object Access Protocol)一般指...

  • API测试基础--SOAP协议

    什么是SOAP SOAP全称Simple Object Access Protocol。它是基于XML协议的WEB...

网友评论

      本文标题:SOAP协议及Python调用

      本文链接:https://www.haomeiwen.com/subject/vkhivftx.html