SOAP+WSDL
一 SOAP
SOAP最开始是用作RPC机制的,后来XML的出现使其应用非常广泛.它与HTTP一样是一种应用级协议,使用他可以在不同的应用程序之间进行数据交换.SOAP可以基于HTTP,也可以基于HTTP之外的其他传输协议之上来实现应用程序与应用程序之间的通信.
SOAP协议是一个信封,由消息头(可选)和消息体(必选)两部分组成.
1 消息头: 指定消息头所瞄准的端点类型属性,很少用到; 消息头是否必须被处理
头信息中经常保存和消息语义不是直接相关的信息
2 消息体: 针对每个webmethod的调用,都有一个对应的SOAP消息.
如前面的Login对应的请求SOAP
1 <?xml version="1.0" encoding="utf-8"?>
2 <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
3 <soap12:Header>
4 <MyServiceClassHeader xmlns="http://tempuri.org/">
5 <UsN>string</UsN>
6 <PaW>string</PaW>
7 </MyServiceClassHeader>
8 </soap12:Header>
9 <soap12:Body>
10 <Login xmlns="http://tempuri.org/" />
11 </soap12:Body>
12 </soap12:Envelope>
程序中我们定义了一个继承于SoapHeader的类,MyServiceClassHeader ,
他包含了两个属性UsN和PaW.分别用于携带用户名和密码.
对应的SOAP中包含了一个一个子元素MyServiceClassHeader
消息体中主要包含对web方法的调用信息,如<Login xmlns="http://tempuri.org/" />
Login为调用的方法,如果该方法有参数,则他还有子元素用于说明调用函数的参数以及参数值.
这个是响应SOAP消息.
1 <?xml version="1.0" encoding="utf-8"?>
2 <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
3 <soap12:Body>
4 <LoginResponse xmlns="http://tempuri.org/">
5 <LoginResult>string</LoginResult>
6 </LoginResponse>
7 </soap12:Body>
8 </soap12:Envelope>
元素的名字以对应请求的方法名+Response, 如果有返回值,则还有子元素方法名+Result.
二 WSDL
是一种用于描述web服务的语法规范.针对每个web服务来说,他是一个说明文档.
对web服务的位置,协议和接口进行详细的说明.由web服务的开发者提供.
WSDL文件包括5部分:types, Message,PortType,Binding和Service五部分.
1 Types定义: 类型定义,独立于语言.对应于SOAP消息中要传输的元素信息的定义
2 Message: 每个web方法对应两个message定义in和out.而message的定义包含了头和体
3 PortType: 每个web service对应一个PortType,该PortType中又包含了对其发布的方法, operation.
4 Bindings: 指定每porttype中每个操作(类以及方法)的绑定信息,包含input和output的消息的格式.
5 Service: 每个web service绑定的port信息
SOAP+WSDL的更多相关文章
- webservice------UDDI SOAP WSDL 之间的关系
[ 真的是服了一些博客.....啰里啰唆的将一堆== 根本不知道讲的是什么 ... 在描述一个定义之前 (不如先通俗的讲它是干什么的)] SOAP(Simple Object Access P ...
- 彻底理解webservice SOAP WSDL
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- 理解WebService SOAP WSDL
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- (文摘)彻底理解webservice SOAP WSDL
WebServices特点介绍 WebServices 提供一个建立分布式应用的平台,使得运行在不同操作系统和不同设备上的软件,或者是用不同的程序语言和不同厂商的软件开发工具开发的软件,所有可能的已开 ...
- [Java] webservice soap,wsdl 例子
java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和 ...
- 【🉐】 彻底理解webservice SOAP WSDL
原文: http://wenku.baidu.com/view/f87b55f19e31433239689314.html WebServices简介 先给出一个概念 SOA ,即Service Or ...
- web services + soap + wsdl 学习
什么是web services? 应用程序组件: 使用开放协议进行通信: 独立(self - contained )并可自我描述: 可通过使用UDDI来发现: 可被其他应用程序使用: XML是Web ...
- Webservice soap wsdl区别之个人见解
原文:http://blog.csdn.net/pautcher_0/article/details/6798351 Web Service实现业务诉求:Web Service是真正“办事”的那个,提 ...
- WebService 服务端客户端 实例 HTTPRIO (一) SOAP WSDL
Delphi中WebService包含的组件解释(有7个) (1) THTTPRIO-------:使用Http消息来调用远程使用SOAP的接口对象 (2) THTTPReqResp- ...
随机推荐
- HDU 1392 Surround the Trees (Graham求凸包周长)
题目链接 题意 : 让你找出最小的凸包周长 . 思路 : 用Graham求出凸包,然后对每条边求长即可. Graham详解 #include <stdio.h> #include < ...
- arcgis地图操作的资料URL,以供以后查阅
更改Arcgis Web应用程序的端口号8399: http://help.arcgis.com/zh-cn/arcgisserver/10.0/help/arcgis_server_java_hel ...
- C Primer Plus之文件输入/输出
文件 一个文件通常就是磁盘上的一段命名的存储区.但对于操作系统来说,文件就会更复杂一些.例如,一个大文件可以存储在一些分散的区段中,或者还会包含一些使操作系统可以确定其文件类型的附加数据. C将文件看 ...
- Tomcat目录结构
首先来了解一下Tomcat5.5的目录结构: /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件 /conf:存放Tomcat服务器的各种全局配置文件,其中包括server ...
- 李洪强漫谈iOS开发[C语言-005]-程序结构分析
- Java多线程-线程的调度(休眠)
Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率. 这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制. ...
- android 点九PNG技术 适应不同分辨率 完美显示效果
.9.png是一种非失真性压缩位图图形文件格式.PNG格式是非失真性压缩的,允许使用类似于GIF格式的调色板技术,支持真彩色图像,并具备阿尔法通道(半透明)等特性.现在有很多人使用PNG格式于互联网及 ...
- 几个Unicode新知识:扩展ANSI有很多种(256个字符),Unicode表示ANSI字符时高字节为0,Unicode不包括古代字符
都是有些模糊的概念,特别是Unicode不包括古代字符让我有点惊讶.看来Unicode只适用于大多数情况,一旦有无法表示的字符,那该怎么办呢? ANSI针对英语设计的,当处理带有音调标号(形如汉语的拼 ...
- Item2 + zsh
转自 http://11ten.gitcafe.io/book-a/iTerm2/index.html iTerm2的主要特点: 开源免费. 兼容性比默认Terminal更好.对于经常要远程使用的情况 ...
- #-webkit-autofill##google#启用表单自动填充时,如何覆盖黄色背景
google和opera浏览器的表单自动填充后,输入框均会变成黄色背景,黑色字体.如下图. 这样的话会与网页的整体设计风格不一致,怎样自定义样式,来覆盖黄色背景. 首先来看看是什么导致的,右键查看元素 ...