W3School学习-Web Services类篇

1.Web Services

1. Web Services简介

Web Services平台元素
    SOAP(简易对象访问协议)
    UDDI(通用描述、发现及整合)
    WSDL(Web services描述语言)

2.WSDL

1.WSDL是基于XML的用于描述Web Services以及如何访问Web Services的语言

2.WSDL文档主要利用以下元素来描述某个Web Services

<portType>    //web services执行的操作
<message>    //web services使用的消息
<types>        //web services使用的数据类型
<binding>    //web services使用的通信协议

1.WSDL端口

<portType>描述一个web service 可被执行的操作以及相关的消息

端口定义了指向某个web service的链接点。可以把该元素比做传统编程语言中的一个函数库或者一个类,而操作是库中一个函数

操作类型

One-way 此操作可接受消息,但不会返回响应
Request-response 此操作可接受一个请求并会返回一个响应
Solicit-response 此操作可发送一个请求,并会等待一个响应
Notification 此操作可发送一条消息,但不会等待响应

2.WSDL绑定

//例子
<message name="getTermRequest">
   <part name="term" type="xs:string" />
</message>

<message name="getTermResponse">
   <part name="value" type="xs:string" />
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
      <input message="getTermRequest" />
      <output message="getTermResponse" />
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
  <operation>
    <soap:operation
     soapAction="http://example.com/getTerm" />
    <input>
      <soap:body use="literal" />
    </input>
    <output>
      <soap:body use="literal" />
    </output>
  </operation>
</binding>

binding 元素有两个属性 name 和 type

name:定义binding的名称,而type指向用于binding的端口

soap:binding 元素有两个属性 style 和 transport

style:可取值rpc或doucument t ,transport定义了要使用的soap协议

operation 定义了每个端口提供的操作符

对于每个操作,相应的SOAP行为都需要被定义。同时必须对输入和输出进行编码。

3.WSDL和UDDI

UDDI是一种目录服务,企业可以使用它对web services进行注册和搜索

3.SOAP

1.SOAP简介

soap是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。或者说SOAP是用于访问网络服务的协议。

soap指简易对象访问协议

soap是一种通信协议

soap用于应用程序之间的通信

2.SOAP语法

SOAP构建模块

必须的Envelope元素,可把此XML文档标识为一条SOAP消息

可选的Header元素,包含头部信息

必须的Body元素,包含所有的调用和响应信息

可选的Fault元素,提供有关在处理此消息所发生错误的消息

//soap消息基本结构
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>
  ...
  ...
</soap:Header>

<soap:Body>
  ...
  ...
  <soap:Fault>
    ...
    ...
  </soap:Fault>
</soap:Body>

</soap:Envelope>

3.SOAP Envelope

必须的SOAP的Envelope元素是soap消息的根元素。它把XML文档定义为SOAP消息。

4.SOAP Header元素

可选的SOAP Header元素包含有关SOAP消息的应用程序专用信息,如果Header元素被提供,则它必须是Envelope元素的第一个子元素。

5.SOAP Body

必须的SOAP Body元素传送到消息中断点的实际SOAP消息

6.SOAP Fault

可选的soap fault用于指示错误消息

如果已提供了Fault元素,则它必须是Body元素的子元素,Fault只可以出现一次

faultcode     供识别故障的代码
faultstring   可供人阅读的有关故障的说明
faultactor    有关是谁引发故障的信息
detail        存留涉及Body元素的应用程序专用错误信息

7.HTTP Binding

HTTP在TCP/IP之上进行通信。HTTP客户机使用TCP链接到HTTP服务器。在建立连接之后,客户机可向服务器发送HTTP请求。

SOAP方法指的是遵守SOAP编码规则的HTTP请求/响应

SOAP = HTTP + XML

Content-Type:SOAP的请求和响应的Content-Type头可定义消息的MIME类型,以及用于请求或响应的XML主体的字符编码

Content-Length:主体的长度

猜你喜欢

转载自blog.csdn.net/qq_34759481/article/details/81702603
今日推荐