创建,测试和使用Web服务的小结

原创 2002年08月13日 09:19:00

下面是我关于Web服务的一点学习小结,当然还是非常的简单粗浅.希望对大家能有所帮助.更欢迎批评指正.

 

如何创建并且使用Web服务<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

创建Web服务

一般来说有2种方式来创建Web服务

l         直接编写Web服务文件(*.asmx);

l         首先实现业务对象,然后仅仅用asmx文件曝露;

注意: *.asmxASP.NET Web服务的扩展名,并不是所有的Web服务都是此方式供用户测试,其他厂商提供的Web服务往往只是一个Port.

   

1.     创建简单Web服务文件

<%@ WebService Language = C# Class = HelloMessage %>

using System;

using System.Web.Services;

 

public class HelloMessage : WebSerive

{

[WebMethod]

public string SayHello(string strName)

{

    return “Hello, ” + strName;

}

}

 

首先需要加入 WebService的编译指令以指明其是一个Web服务,接下来是语言属性,和一个Web服务类的属性class.

注意:在一个asmx文件中可以有很多类,当时只能有一个用于Web服务.

 

HelloMessage继承了System.Web.Services.WebService这个类.

[WebMethod]这个属性一定要加到想要使用的Web方法前.注意该方法的Modifier必须是public.

希望用户访问的web方法一定要是公用的,且必须包含属性[WebMethod].含有该属性的方法将把所有调用者都看作是本地的.

 

[WebMethod]属性的进一步说明可以参看ASP.NET21.

 

2.     业务对象法

可以使用已有的业务对象来创建Web服务,可以大大的降低工作量.当然为了启动服务支持,必须做一些相应的修改.简单来说,需要做三件事:

l         对象必须从WebService类继承;

l         给要暴露的方法加上[WebMethod]属性,当然Modifier也必须是public;

l         把返回值是XXDataReader的改为DataSet,因为前者无法通过XML传输;

注意:因为只有从WebService继承而来的类才会作为服务暴露给客户,所以您可以在同一个文件中创建对象的多个版本.

 

然后,将业务对象编译成程序集放在相应的目录下.

 

然后构建暴露业务对象服务的.asmx文件,非常简单,只需要一句.

<%@ WebSerive Class = YourNamespace.YourServiceClass %>

 

测试Web服务

       对于.NET 框架建立的Web服务而言,直接在IE浏览器中就可以看到测试界面了.比如:

http://www.hillfree.com/myservice.asmx

 

一般来说可以看到Web服务类和Web方法. 调用Web服务可以有三种方法.(当然,不是所有的Web方法都可以用三种方法调用.):

1.         SOAP

2.         HTTP-GET

3.         HTTP-POST

 

使用SOAP调用服务传递命令和参数,可以使用很多基于XML的数据类型.(i.e. Array, class, DataSet, primitive, xmlNode etc.)

 

但如果使用HTTP GETHTTP POST, 则只能使用这些协议所能处理的类型.一般就是primitive基本类型和数组. 此外HTTP GET/POST也只能发送名值对,不能传递复杂的数据类型.

 

需要查看相关的说明文件时,可以输入:

http://www.hillfree.com/myservice.asmx?WSDL

这是一个xml文件.

使用Web服务

使用Web服务,一般包括三个步骤

1.         发现服务

2.         生成服务的代理

3.         编写客户端程序,使用代理调用所需的服务.

 

发现服务:

       使用disco.exe工具来发现Web站点的Web服务,:

       disco http://localhost/service/day/fain.disco

生成服务代理类

       使用wsdl.exe 工具生成Web服务代理类.如下:

       wsdl http://www.hillfree.com/service.asmx?wsdl 

//如果直接知道wsdlurl,就不要发现那一步了.

 

       这样默认生成的是C#的类. 当然,如果已经有了WSDL文件就可以直接:

       wsdl service.wsdl

      

接下来,您可以直接使用该类文件,或者将其编译为程序集使用.

 

简要介绍一下代理类:

       生成的代理类包含一个来自System.Web.Services的属性[WebServiceBindingAttribute].

该属性定义了这个类必须使用的接口.

       另外,此类是从SoapHttpClientProtocol继承而来的,它通过SOAPWeb服务远程通信.代理类中包含一个构造函数,它设置了Web服务的URL.

使用BPEL创建Web服务组合

为简单起见,本例的Web服务组合只调用一个Web Service API。 本文环境是:Eclipse Juno Release + JRE 1.7 + Tomcat 7.0.29 + BPEL +...
  • steveyg
  • steveyg
  • 2015年07月02日 23:00
  • 578

使用HTTPie测试Web服务

flask web 开发 P1681.问题(venv) C:\Users\Geek Lee\flasky>http --json --auth 123456789@qq.com:password GE...
  • GeekLeee
  • GeekLeee
  • 2016年09月05日 21:52
  • 1192

创建博客-使用HTTPie测试Web服务

HTTPie
  • yongsan01
  • yongsan01
  • 2016年09月13日 20:21
  • 314

REST及REST风格的web服务

1.前言:REST是由Roy Fielding提出的一种软件架构,现如今也是因为REST模式的web服务与复杂的SOAP、XML-RPC对比来说, 更加简洁,越来越多的web服务开始采用REST...
  • cj9551
  • cj9551
  • 2018年01月03日 19:49
  • 46

使用WCF创建Web服务

Learn WCF Service basicWCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的、安全、可信赖、事务性的解决...
  • CJamie
  • CJamie
  • 2008年03月12日 20:44
  • 877

使用WCF创建Web服务

Learn WCF Service basicWCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的、安全、可信赖、事务性的解决...
  • lirincy
  • lirincy
  • 2008年03月12日 14:24
  • 3945

使用PowerDesigner9.5创建Web服务

  • zgqtxwd
  • zgqtxwd
  • 2008年04月27日 03:14
  • 126

如何利用XMLSpy工具测试Webservice?

WebService实现了跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的...
  • YY_LOVE_MY
  • YY_LOVE_MY
  • 2014年06月18日 16:49
  • 2175

Web服务协议以及使用方式

 Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不...
  • zhangzhaokun
  • zhangzhaokun
  • 2009年11月04日 08:16
  • 7681

IE 10浏览器使用心得:界面简洁、功能很强大

IE 10浏览器的功能还是非常强大的,启动速度快,简洁到以展现内容为主导以及更好的兼容性,IE10与IE9一样建立在硬件加速图形工具软件之上,而且IE10将继续支持HTML5和CSS3。为了让Wind...
  • linux_loajie
  • linux_loajie
  • 2013年01月22日 09:35
  • 3213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建,测试和使用Web服务的小结
举报原因:
原因补充:

(最多只允许输入30个字)