Web API 2 (一)之Web Service简介

Web Service 是什么?

Web Service 也叫作XML Web Service,是一种网络化的,分布式的软件系统,通常通过Http交付,可以跨编程语言和操作系统进行远程调用操作,通常情况下,Web Service包括服务本身和客户端,后者也被称为消费者或请求者,可以通过网络访问部署在服务器提供的某种服务(通过调用Web服务对外公开的访问接口)。其可以是网页浏览器,一个桌面应用,更甚至是一个没有图形界面的应用程序

图 1.1 一个Web 服务和它的一个客户端

根据定义,Web服务和服务客户端间通过HTTP进行交互,HTTP消息是基础设施,这些HTTP消息被组合成描述Web服务特征的基本会话模式。常见的模式有4中,分别如下:

  • 如果Web服务的会话以期望的HTTP请求HTTP响应开始,那么该模式被称为 请求/处理 模式,是目前4种模式中占主导地位的一种模式
  • 如果会话以服务器发出的一条期望从客户端返回消息的HTTP消息开始,那么该模式称为 要求/响应
  • 从客户端到服务器的无响应消息,被称为 单向模式
  • 从服务器到客户单的无响应消息,被称为 通知模式

Web Service中的一些概念

SOAP:SOAP最初代表 简单对象访问协议(Simple Object Access Protocol),前面是我们说过Web Service 是通过HTTP进行交付的,Web服务和Web 服务客户端间交互的信息是经过封装的XML格式的数据,并增加了相应的HTTP报头,而这些就被称为SOAP协议,总的来说就是 SOAP协议 = HTTP协议 + XML格式的数据 

WSDL:Web服务描述语言(Web Service Description Language),这是基于XML 的一种用来描述Web Service 内定义的操作的名称、说明信息、参数、返回值等信息的语言,它本身必须保证Web service 和Web 客户端都必须能理解这种语言。一般情况下有开发工具自动生成。

XSD : xml Schema Definition ,从其全称可以看出这也是一种基于XML的一种语言,它定义了一套标准的数据类型,Web Service就是使用XSD作为其数据类型系统的,Web Service中使用的数据最终都要被转换为XSD格式来定义(功能类似于Net平台的IL语言)

UDDI:UDDI   是一种规范,它主要提供基于Web服务的注册和发现机制, 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索,当客户端调用Web Service之前,必须知道Web Service的WSDL,Web Service的生产者可以通过两种方式将WSDL 公开给其使用者,其一,将WSDL直接告诉其调用者,其二,将服务对应WSDL注册到UDDI服务器上。

Web Service 的一些特点

  • 语言透明性

    Web服务的服务及其客户端可以不必使用同种编程语言来实现,语言透明性是 Web 服务互操作性的一个重要因素,即尽管使用不同的编程语言、不同的操作系统和硬件平台,Web服务和其消费者之间可以无缝的衔接。

    假如使用C#写了一个Web服务,如果想让该服务可以让使用Python或Java语言开发的客户端来使用的话,那么必须存在一个中间处理层来处理服务和客户端之间不同的数据类型,XML可以作为这样的一个中间层,因为它支持结构化的文档交换和处理,另一个中间层是JSON(JavaScript Object Notation )

  • 模块化设计

    Web服务设计师模块化的,这使得新的服务可以有现有的服务组合而成。Web服务设计的指导原则是从非常简单的服务操作和本质上并不复杂的功能开始,然后可以根据现实需求把这些操作组合成服务

  • 无状态性

    Web 服务由一些操作组成,每个操作都被实现为一个无状态函数的调用(如果某个调用的返回值仅依赖于传递给他的参数,那么该调用是无状态的)

  • 开发基础设施

    Web服务使用符合行业标准的、独立于供应商的协议和HTTP、XML、JSON这些语言部署,所有的这一切都是普遍存在的,Web服务可以利用网络、数据格式、安全性和其它已经到位的基础设施来降低其进入成本

使用Web Service的好处

  • 现代的软件系统一般情况下都是由多种语言编写的,这就造就了现代软件开发中的一个重大的挑战:系统集成,如何让这些不同语言编写的、运行在不同硬件平台上的软件系统进行交互?Web服务提供了一个相对简单的答案。
  • 由于Web Service是基于模块化的思想开发的,可以很大程度上提升代码的复用率和软件开发进度

Web Service在Net中使用的一个简单小实例

  1. 打开 Visual Studio,新建项目àWebàASP.NET Web应用程序
  2. 在创建好的项目上右键à添加àWeb服务(asmx)

  3. 创建的firstWebService.asmx的文件如下

public class firstWebService : System.Web.Services.WebService

{

[WebMethod]

public string HelloWorld()

{

return "Hello World";

}

[WebMethod(Description ="求和的方法")]

public int GetSum(params int[] arr)

{

int sum = 0;

foreach(int i in arr)

{

sum += i;

}

return sum;

}

} 

至此,一个简单的Web Service 就算部署完成了,点击启动程序,在浏览器里可以查看到

接下来创建一个Web客户端调用创建好的Web 服务,该例子只为演示,就创建一个最简单的控制台应用程序Client

  1. 在创建好的控制台程序上右键 添加à服务引用

    在弹出的窗口中,将创建的Web 服务的URL粘到地址那一栏中,然后点击确定

    创建完成后,咱们的Client的目录结构如下:

5.写代码调用Web服务

 //需要导入服务所在的命名空间  using Client.ServiceReference1;
            firstWebServiceSoapClient c = new firstWebServiceSoapClient();
            string s = c.HelloWorld();

            Console.WriteLine(s);

            //调用求和函数GetSum(params int[] arr),但你会发现在这里其参数类型变为了(ArrayOfInt),转到定义可以看到该类继承自List<Int>
            //因此这里的实参要不参与下面的方式添加,要么 直接添加一个List<int>类型的集合
            int[] arr = new int[] { 1, 2, 3 };
            ArrayOfInt ar = new ArrayOfInt();

            int sum = c.GetSum(ar);
            Console.WriteLine("The SUM is :{0}",sum);
            Console.ReadKey();

6.至此,一个简单的Web Service的构建和调用就全部完成了。

时间: 2024-12-09 14:22:03

Web API 2 (一)之Web Service简介的相关文章

【ASP.NET Web API教程】3 Web API客户端

Chapter 3: Web API Clients 第3章 Web API客户端 本文引自:http://www.asp.net/web-api/overview/web-api-clients In this chapter, you'll learn: 本章你将学习: How to create client applications that call your web API. 如何创建调用Web API的客户端应用程序.包括以下几个部分: 3.1 Sample: Introducti

Web API、WCF和Web Service的区别

[转载] Web Service 1.它是基于SOAP协议的,数据格式是XML 2.只支持HTTP协议 3.它不是开源的,但可以被任意一个了解XML的人使用 4.它只能部署在IIS上 WCF 1.这个也是基于SOAP的,数据格式是XML 2.这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ. 3.WCF的主要问题是,它配置起来特别的繁琐 4.它不是开源的,但可以被任意一个了解XML的人使用 5.它可以部署

在ASP.NET Web API和ASP.NET Web MVC中使用Ninject

先附上源码下载地址 一.准备工作 1.新建一个名为MvcDemo的空解决方案 2.新建一个名为MvcDemo.WebUI的空MVC应用程序 3.使用NuGet安装Ninject库 二.在ASP.NET MVC中使用Ninject 1.新建一个Product实体类,代码如下: public class Product { public int ProductId { get; set ; } public string Name { get; set ; } public string Descr

Web Api 简介

ASP.NET Web API 简介 ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RESTful 服务的理想平台. ASP.NET Web API 特性 ASP.NET Web API 包含下列特性: 先进的 HTTP 编程模型: 使用新的强类型的 HTTP 对象模型直接操作 HTTP 请求和响应, 在 HTTP客户端使用相同的编程模型和 HTTP

Difference between WCF and Web API and WCF REST and Web Service

The .Net framework has a number of technologies that allow you to create HTTP services such as Web Service, WCF and now Web API. There are a lot of articles over the internet which may describe to whom you should use. Now a days, you have a lot of ch

ASP.NET Web API 简介

ASP.NET Web API 简介 ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RESTful 服务的理想平台. ASP.NET Web API 特性 ASP.NET Web API 包含下列特性: 先进的 HTTP 编程模型: 使用新的强类型的 HTTP 对象模型直接操作 HTTP 请求和响应, 在 HTTP客户端使用相同的编程模型和 HTTP

WCF 、Web API 、 WCF REST 和 Web Service 的区别

The .Net framework has a number of technologies that allow you to create HTTP services such as Web Service, WCF and now Web API. There are a lot of articles over the internet which may describe to whom you should use. Now a days, you have a lot of ch

转 Difference between WCF and Web API and WCF REST and Web Service

http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-REST-and-Web-Service.html Posted By : Shailendra Chauhan, 05 Apr 2013 Updated On : 13 Apr 2013 Total Views : 126,254 Keywords : web api vs wcf vs wcf r

ASP.NET Web API系列教程(目录)(转)

注:微软随ASP.NET MVC 4一起还发布了一个框架,叫做ASP.NET Web API.这是一个用来在.NET平台上建立HTTP服务的Web API框架,是微软的又一项令人振奋的技术.目前,国内对此关注的人似乎还不多,有关ASP.NET Web API的文章也不多见.为此,本人打算对微软ASP.NET Web API官方网站上的一些教程进行翻译,以期让更多的国人了解.学习和使用这项ASP.NET Web API. ASP.NET Web API系列教程目录 Introduction:Wha

ASP.NET Web API系列教程目录

ASP.NET Web API系列教程目录 Introduction:What's This New Web API?引子:新的Web API是什么? Chapter 1: Getting Started with ASP.NET Web API第1章 ASP.NET Web API入门 Your First Web API (C#)第一个Web API(C#) Deep Dive into Web API深入探讨Web API(这是一个视频教程,本翻译系列略) Pro ASP.NET Web