zoukankan      html  css  js  c++  java
  • SOAP和WSDL(转)

    一 SOAP

      SOAP最开始是用作RPC机制的,后来XML的出现使其应用非常广泛.它与HTTP一样是一种应用级协议,使用他可以在不同的应用程序之间进行数据交换.SOAP可以基于HTTP,也可以基于HTTP之外的其他传输协议之上来实现应用程序与应用程序之间的通信.
             SOAP协议是一个信封,由消息头(可选)和消息体(必选)两部分组成.
             1  消息头: 指定消息头所瞄准的端点类型属性,很少用到; 消息头是否必须被处理
                 头信息中经常保存和消息语义不是直接相关的信息
             2  消息体: 针对每个webmethod的调用,都有一个对应的SOAP消息.

                 如前面的Login对应的请求SOAP

                <?xml version="1.0" encoding="utf-8"?>
                   <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">
     9            <soap12:Header>
    10                <MyServiceClassHeader xmlns="http://tempuri.org/">
    11                   <UsN>string</UsN>
    12                   <PaW>string</PaW>
    13               </MyServiceClassHeader>
    14          </soap12:Header>
    15          <soap12:Body>
    16              <Login xmlns="http://tempuri.org/" />
    17         </soap12:Body>
    18     </soap12:Envelope>
                程序中我们定义了一个继承于SoapHeader的类,MyServiceClassHeader ,
               他包含了两个属性UsN和PaW.分别用于携带用户名和密码.
               对应的SOAP中包含了一个一个子元素MyServiceClassHeader  
               消息体中主要包含对web方法的调用信息,如<Login xmlns="http://tempuri.org/" />
               Login为调用的方法,如果该方法有参数,则他还有子元素用于说明调用函数的参数以及参数值.

              这个是响应SOAP消息.

             <?xml version="1.0" encoding="utf-8"?>
    26<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">
    27  <soap12:Body>
    28    <LoginResponse xmlns="http://tempuri.org/">
    29      <LoginResult>string</LoginResult>
    30    </LoginResponse>
    31  </soap12:Body>
    32</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信息

    原文:http://www.cnblogs.com/engine1984/articles/1105170.html

  • 相关阅读:
    网页中的图片查看器viewjs使用
    检测和删除多余无用的css
    网页中插入视频的方案
    WebSocket使用教程
    JS+CSS简单实现DIV遮罩层显示隐藏【转藏】
    使用GPS经纬度定位附近地点(某一点范围内查询)
    使用SQL Server Management Studio 创建数据库备份作业
    SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
    关于LINQ方方面面的入门、进阶、深入的文章。
    LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
  • 原文地址:https://www.cnblogs.com/myparamita/p/1490975.html
Copyright © 2011-2022 走看看