XML Web Services 网络服务
Web服务是Web应用程序组件。
Web服务可以在Web上发布、查找和使用。
本教程介绍WSDL、SOAP、RDF和RSS。
WSDL
- WSDL代表Web服务描述语言
- WSDL是一种用于描述Web服务的基于XML的语言。
- WSDL是W3C的建议
SOAP
- SOAP代表简单对象访问协议
- SOAP是用于访问Web服务的基于XML的协议。
- SOAP是基于XML的
- SOAP是W3C推荐的
RDF
- RDF代表资源描述框架
- RDF是一个描述web上资源的框架
- RDF是用XML编写的
- RDF是W3C推荐的
RSS
- RSS代表非常简单的联合
- RSS允许你联合你的网站内容
- RSS定义了一种共享和查看标题和内容的简单方法
- RSS文件可以自动更新
- RSS允许不同站点的个性化视图
- RSS是用XML编写的
你应该知道的
在学习web服务之前,您应该对XML和XML名称空间有一个基本的了解。
如果您想先学习这些主题,请阅读我们的XML教程XML 教程。
Web Web Services
- Web服务是应用程序组件
- Web服务使用开放协议进行通信
- Web服务是自包含和自描述的
- 可以使用UDDI发现Web服务
- Web服务可以被其他应用程序使用
- HTTP和XML是Web服务的基础
互操作性具有最高优先级
当所有主要的平台都可以使用浏览器访问Web时,不同的平台就不能进行交互。为了使这些平台协同工作,开发了Web应用程序。
Web应用程序只是在Web上运行的应用程序。这些都是围绕Web浏览器标准构建的,可以由任何平台上的任何浏览器使用。
Web服务将Web应用程序提升到了一个新的层次
通过使用Web服务,您的应用程序可以向世界其他地方发布其功能或消息。
Web服务使用XML编码和解码数据,使用SOAP传输数据(使用开放协议)。
通过Web服务,您的会计部门的Win 2k服务器的计费系统可以连接到IT供应商的UNIX服务器。
Web服务有两种用途
可重用的应用程序组件。
应用程序经常需要一些东西。为什么要一次又一次地做这些呢?
Web服务可以提供应用程序组件,例如:货币转换、天气报告,甚至语言翻译作为服务。
连接现有软件。
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 framework导入命名空间"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服务。
将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>
用web服务的地址替换"tempconvert.asmx",如下所示:
http://www.example.com/xml/tempconvert.asmx