最新的Web开发教程
 

XML网页服务


Web服务是Web应用程序组件。

Web服务可以发布,发现,并在网络上使用。

本教程将介绍WSDL,SOAP,RDF和RSS。


WSDL

  • WSDL是Web服务描述语言
  • WSDL是用于描述Web服务的基于XML的语言。
  • WSDL是W3C推荐

肥皂

  • SOAP代表简单对象访问协议
  • SOAP是用于访问网络服务的基于XML的协议。
  • SOAP是基于XML的
  • SOAP是一种W3C推荐

RDF

  • RDF是资源描述框架
  • RDF是用于描述在网络上的资源的框架
  • RDF是XML编写
  • RDF是W3C推荐

RSS

  • RSS代表真正简单的整合
  • RSS允许你辛迪加网站内容
  • RSS定义了一个简单的方法来共享和查看标题和内容
  • RSS文件可以自动更新
  • RSS允许不同的站点个性化视图
  • RSS是XML编写

你应该已经知道

之前学过的Web服务,你应该对XML和XML命名空间的一个基本的了解。

如果你想先学习这些项目,请阅读我们的XML教程


网页服务

  • Web服务是应用程序组件
  • Web服务通信使用开放协议
  • Web服务是自包含的,自描述
  • Web服务可以使用UDDI发现
  • Web服务可以由其他应用程序使用
  • HTTP和XML是用于Web服务的基础

互操作的优先级最高

当所有主要的平台可以用Web浏览器访问Web,不同的平台不能进行交互。 对于这些平台协同工作,Web的应用程序的开发工作。

Web的应用程序都仅仅是在网络上运行的应用程序。 这些围绕在Web浏览器标准建造并可以通过任何平台上的任何浏览器一起使用。


Web服务需要Web的应用程序到新的水平

通过使用Web服务,应用程序可以发布它的功能或消息到世界各地。

Web服务使用XML来编码和解码数据,以及SOAP传输它(using open protocols)

随着Web服务,您的会计部门的赢2K服务器的计费系统可以与IT供应商的UNIX服务器进行连接。


Web服务已经使用两种类型

Reusable application-components.

有些事情的应用程序需要非常频繁。 那么,为什么让这些一遍又一遍?

Web服务可以提供应用程序组件,如:货币兑换,天气预报,甚至语言翻译为服务。

Connect existing software.

Web服务可以帮助通过给不同的应用程序的方式来链接它们的数据以解决互操作性问题。

随着Web服务可以交换不同的应用和不同平台之间的数据。

任何应用程序可以有一个Web服务组件。

Web服务可以不考虑编程语言创建的。


一个Web服务示例

在下面的例子中,我们将使用ASP.NET创建温度华氏转换为摄氏一个简单的Web服务,反之亦然:

<%@ WebService Language="VBScript" Class="TempConvert" %>

Imports System
Imports System.Web.Services

Public Class TempConvert :Inherits WebService

<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
  dim fahr
  fahr=trim(replace(Fahrenheit,",","."))
  if fahr="" or IsNumeric(fahr)=false then return "Error"
  return ((((fahr) - 32) / 9) * 5)
end function

<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
  dim cel
  cel=trim(replace(Celsius,",","."))
  if cel="" or IsNumeric(cel)=false then return "Error"
  return ((((cel) * 9) / 5) + 32)
end function

end class

该文件保存为一个.asmx文件。 这是XML Web服务的ASP.NET文件扩展名。


例子解释:

Note:要运行这个例子,你将需要一个.NET服务器。

在本例中的第一行指出,这是一个Web服务,用VBScript编写的,并具有类名"TempConvert"

<%@ WebService Language="VBScript" Class="TempConvert" %>

下一行导入命名空间"System.Web.Services"从.NET框架:

Imports System
Imports System.Web.Services

下一行定义了"TempConvert"类是WebService类类型:

Public Class TempConvert :Inherits WebService

接下来的步骤是基本的VB编程。 本申请中有两个功能。 一个从华氏转换为摄氏温度,和一个从摄氏转换为华氏。

从一个普通的应用程序,唯一的区别是,此功能被定义为一个"WebMethod()

使用"WebMethod()将函数转换您的应用程序到Web服务:

<WebMethod()> Public Function FahrenheitToCelsius
(ByVal Fahrenheit As String) As String
  dim fahr
  fahr=trim(replace(Fahrenheit,",","."))
  if fahr="" or IsNumeric(fahr)=false then return "Error"
  return ((((fahr) - 32) / 9) * 5)
end function

<WebMethod()> Public Function CelsiusToFahrenheit
(ByVal Celsius As String) As String
  dim cel
  cel=trim(replace(Celsius,",","."))
  if cel="" or IsNumeric(cel)=false then return "Error"
  return ((((cel) * 9) / 5) + 32)
end function

然后,结束等级:

end class

发布使用.NET支持的服务器上.asmx文件,你将有你的第一个工作的Web服务。

看看我们的示例Web服务


ASP.NET自动执行过程

使用ASP.NET,你不必写自己的WSDL和SOAP文档。

如果你看看我们的示例Web服务近,你会看到ASP.NET已经自动创建WSDLSOAP请求。

使用Web服务示例

在前面的页面中,我们创建了一个Web服务

FahrenheitToCelsius()函数可以在这里进行测试: FahrenheitToCelsius

CelsiusToFahrenheit()函数可以在这里进行测试: CelsiusToFahrenheit

这些功能将发送类似这样的XML响应:

<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">38</string>

把Web服务在您的网站

使用形式和HTTP POST方法,你可以把Web服务在您的网站,像这样:

华氏温度为摄氏:

摄氏华氏:

怎么做

这里是Web服务添加到Web页面的代码:

<form action='tempconvert.asmx/FahrenheitToCelsius'
method="post" target="_blank">
<table>
  <tr>
    <td>Fahrenheit to Celsius:</td>
    <td>
    <input class="frmInput" type="text" size="30" name="Fahrenheit">
    </td>
  </tr>
  <tr>
    <td></td>
    <td align="right">
     <input type="submit" value="Submit" class="button">
     </td>
  </tr>
</table>
</form>

<form action='tempconvert.asmx/CelsiusToFahrenheit'
method="post" target="_blank">
<table>
  <tr>
    <td>Celsius to Fahrenheit:</td>
    <td>
    <input class="frmInput" type="text" size="30" name="Celsius">
    </td>
  </tr>
  <tr>
    <td></td>
    <td align="right">
    <input type="submit" value="Submit" class="button">
    </td>
  </tr>
</table>
</form>

替代"tempconvert.asmx"与Web服务一样的地址:

http://www.example.com/xml/tempconvert.asmx