Web 服务是 Web 应用程序组件。
Web 服务可以在 Web 上发布、查找和使用。
本教程介绍 WSDL、SOAP、RDF 和 RSS。
在学习 Web 服务之前,您应该对 XML 和 XML 命名空间有基本的了解。
如果您想先学习这些主题,请阅读我们的XML教程。
当所有主要平台都可以使用Web浏览器访问Web时,不同平台之间无法交互。为了使这些平台协同工作,开发了 Web 应用程序。
Web 应用程序只是在 Web 上运行的应用程序。它们是围绕 Web 浏览器标准构建的,可供任何平台上的任何浏览器使用。
通过使用 Web 服务,您的应用程序可以向世界其他地方发布其功能或消息。
Web 服务使用 XML 来编码和解码数据,并使用 SOAP 来传输数据(使用开放协议)。
通过Web 服务,您的会计部门的Win 2k 服务器的计费系统可以与您的IT 供应商的UNIX 服务器连接。
可重用的应用程序组件。
有些东西是应用程序经常需要的。那么为什么要一遍又一遍地做这些呢?
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 文件扩展名。
笔记:要运行此示例,您将需要一个 .NET 服务器。
示例中的第一行指出这是一个用 VBScript 编写的 Web 服务,并且具有类名 "TempConvert":
<%@ WebService Language="VBScript" Class="TempConvert" %>
接下来的几行从 .NET 框架导入命名空间 "System.Web.Services":
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 服务。
使用表单和 HTTP POST 方法,您可以将 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" 替换为您的网络服务地址,例如:
http://www.example.com/xml/tempconvert.asmx
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!