1、 Web Service简介
1.1Web Service特点
-
. Web Service是跨平台的,应用程序经常需要从运行在Linux主机上的程序中获取数据,然后把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,
不同软件厂商生产的各种软件也常常需要集成起来。通过Web
Service,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。 -
Web Service是无语言限制的,你可以使用.NET,JAVA,PHP,VB.等多种语言开发并进行相互调用。
-
使用SOAP时,数据是以ASCII文本的方式传输,调用很方便,数据容易通过防火墙而实现无缝连接。
1.2Web Service优缺点
优点(适用的场景)
1. 跨防火墙的通信
2. 跨平台,跨语言应用程序集成
3. 软件和数据重用
缺点(不适用的场景)
1. 单机应用程序
2. 局域网的一些应用程序
1.3Web Service基本概念
-
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是SOAP的基础。
-
SOAP:(Simple Object Access Protocol)简单对象存取协议。是Web Service 的通信协议。当用户通过UDDI找到WSDL描述文档后,可以通过SOAP调用Web Service中的一个或多个操作。SOAP是以XML文档形式调用方法的规范,它可以支持不同的底层接口,例如HTTP(S)或者SMTP。
-
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
-
UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web Service供应商和使用者的新项目。在用户能够调用Web Service之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。
-
.NET平台内建了对Web Service的支持,包括Web Service的构建和使用。
-
与其它开发平台不同,使用. NET平台,不需要其他的工具或者SDK就可以完成Web Service的开发了。
-
. NET Framework本身就全面支持Web Service,包括服务器端的请求处理器对客户端发送和接受SOAP消息的支持。
1.4示例
- 创建项目ASP.NET Web应用程序。
- 选择项目模板,可以使用空项目模板。
- 在解决方案资源管理器中,选中项目名称,点击鼠标右键->添加->新建项->Web服务(ASMX)->设置名称然后添加。
- 运行Web Service看效果。
- 点击显示页面上图中的"HelloWorld"超链接看一下HelloWorld调用方式。
- 点击"调用"按钮,就可以看到用XML格式返回的Web Service结果,客户端可以通过对XML进行处理,解析其中的数据。
2、Web Service开发
u
- 在这个示例中我们初步了解了在ASP.NET中Web Service的创建方式,
- Web Service就是个对外调用的接口,里面有函数可供外部调用(注意:同样可以设置不允许外部调用函数)。
- 在Web Service服务端开发中,我们编写好Web Service,然后把它给了客户(同时我们给了他们调用规则),客户就可以从服务端获取信息,客户也不需要了解其运行过程,他们只获取数据。
- 在代码文件里如果我们写了一个函数后,希望此函数成为外部可调用的接口函数,我们必须在函数上面添上一行代码[WebMethod(Description=“函数的描述信息”)],如果函数没有这个特性声明,它将不能被用户引用。
- 先把默认的HelloWorld方法注释掉,或将HelloWorld方法前面[WebMethod]注释掉。
- 简单编写加减乘除运算的四个方法,和普通方法一样编写,在方法前面加上[WebMethod(Description = “方法描述”)]。
- 运行程序可以看到编写的方法
- 逐一测试调用效果
- 在参数上面输入参数a=10,b=5,如上图,点击调用,就可以看到用XML格式返回的Web Service结果(a与b相加的结果)
3、Web Service 属性介绍
-
每个Web Service都需要唯一的命名空间,它可以使客户端应用程序区分出可能使用相同方法名称的Web Service。
-
在Visual Studio.NET中创建的Web Service的默认命名空间是“http://tempuri.org”。尽管名空间类似于普通的URL,但是Web浏览器中是无法查看的,它只是一个唯一标识符。
-
Web Service提供以下属性。
Description:此属性值包含描述信息。
Name:此属性值包含的名称,在默认情况下,该值表示Web Service的类的名称。
Namespace: 此属性值包含Web Service的默认命名空间。
4、Web Method常用属性
5、实战演练——新闻查询服务
任务目标
-
通过新闻编号查询新闻信息
-
通过新闻关键词查询新闻信息
需求说明
-
通过新闻编号查询新闻信息。
-
通过新闻关键词查询新闻信息
实现思路
创建ASP.NET Web应用程序使用空项目模板,名称为MVC_NewsServiceProject。
在SQL Server中创建数据库NewsDB,导入数据库脚本news.sql。
在Models文件夹中添加->新建项->数据->LINQ To SQL类。
在服务器资源管理器中,添加NewsDB数据连接,并将News表添加到DataClasses1设计器中。
设置Web Service类名称与描述信息
创建新闻关键词查询Web Method 编写查询代码。
创建新闻编号查询Web Method编写查询代码。