Web Services被普遍认为是新一代应用程序集成以及通向新的商业模式的大门,是企业之间相互联系的前所未有的重要途径。你也许多多少少对 Web Services
有所耳闻,或许也听过上面的话。但不要感到畏惧,它并没有我们想像的那样深奥,其实“Web Services”就是给应用者提供了一些功能的接口,是一种可以允许被其它
Web上的应用程序访问的技术。
我们就先抛开那些令人感到迷惑不解的复杂的概念,先来进行一个Web Services的初步应用体验。其实 Web Services 程序中的一个后缀为
asmx 文件就是一个 web 服务。
好,就先知道这么多,我们下面就在 Visual Studio .NET 集成编译开发环境创建中一个应用web服务的应用程序。
在这之前我们先向您提供一个网址:
MathService.asmx
这就是一个标准的web服务页,你可以直接打开超级连接,看到是下面的样子。

这个页面是通过 .NET Framework 自动生成的,其中告诉了我们,这个web服务页都提供了那些接口函数。在其中我们可以看到它提供了四个接口函数,即
Multiply Divide Add Subtract
点击其中的一个超级连接 Multiply ,则进入了下面这个界面中。

我们在这里可以清楚地看到,这个表格。其中列出了 Multiply这个函数的两个参数,即 a和 b,那么我们先添入这两个变量的值。然后点击 Invoke
,这样就会将两个参数的值传到提供web服务的服务器端,然后在服务器中用 a和b的值作为Multiply函数的参数并调用这个函数,然后函数返回一个值,这个值你可以在新的一个页面中看到。

在其中我们可以看到返回值为 63,即我们成功调用了一个web服务中的一个乘法函数。但读者能对其返回的全部信息有些疑问? 其实这些信息是以 XML 语言的形式返回的,但如果你还不了解
XML是什么,也没有太大关系,只要知道其与 HTML 语言差不多都是一种标记性语言,但其比 HTML 更灵活,且应用范围更广就可以了。因为本文主要目的是让读者了解如何在程序中应用到Web服务提供的功能。
刚才我们只是在浏览器中访问web服务,而我们如何真正地把其功能应用到自己的程序中呢?那么我们下面就开始这个激动人心的时刻。
我们首先在 Microsoft Visual Studio .NET 中创建一个简单 C# 的控制台程序。如图:

接下来是关键,我们现在要谈论一下这个名称空间,并且拓展其在读者印象中的概念。先前我们编程使用的名称空间都是本地化的。而现在我们要应用Web服务。则要将名称空间网络化,即一个名称空间可以和一个URL关联起来,就是说一个名称空间可以和一个网址对应起来。而我们要使用web服务,就要引入这个URL,并用一个标示符代表这个名称空间。而.NET
Framework会自动为我们创建一个代理类,而这个代理类中的方法就直接映射到web服务中提供的接口函数。这样我们只要通过使用这个代理类就可以很好地使用web服务中提供的接口函数了。
那么我们如何引入这个 URL呢,其实这在 Microsoft Visual Studio .NET 很简单就能办到,如组图:

因为在 Solution Explorer 窗口中 列出的 References 指明了我们所引入的所有名称空间,我们现在要引入网络名称空间,自然也要对其进行操作,单击鼠标右键,在其下拉菜单中选择
Add Web Reference… 。

这样我们就可以在 Solution Explorer 窗口中的 References 中看到我们刚刚加入的网络名称空间
我们现在可以在这个工程当中唯一的 Class1.cs 文件中加入代码了。代码如下:(我们新加入的用红色标出)
using
System;
namespace ConsoleApplication1
{
using
WebMathService;
//引入网络名称空间,因为这个名称空间是属于ConsoleApplication1的,所以在此引入
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[]
args)
{
System.Single a,b,MultiplyResult;
//创建三个System.Single(float)的变量.
MathService op = new MathService();
//使用代理类创建代理对象op
Console.WriteLine("please enter two numbers
devided with \" Enter \"");
try
{
a = Convert.ToSingle(Console.ReadLine()); //对
a 进行赋值
b = Convert.ToSingle(Console.ReadLine()); //对
b 进行赋值
MultiplyResult = op.Multiply(a,b); //使用代理对象op来调用Web服务中的Multiply函数
Console.WriteLine(" "+a+" *
"+b+" = "+MultiplyResult);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine();
//
// TODO: Add code to start application here
//
}
}
}
|
编译后的结果是:
现在你知道使用 Web 服务就是这样简单了吧,其实所有的web服务都是这样调用的。其实我们的目的就是给读者一个对Web服务的感性认识,希望读者通过阅读本文,能够了解什么是Web
Services 以及 Web Services 的初步应用,从而为更深一步的学习,像 XML语言,理解Web 服务的描述文档,以及如何在其中使用 http
get ,http post 和 soap 协议等打下基础。并为今后能够进行 Web Services 的开发提供帮助。
|