当前位置:文档之家› xml webService入门教程

xml webService入门教程

Web Service 基本概念Web Service也叫XML Web Service WebService是种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。

是:通过SOAP在Web上提供的软件(服务),使用WSDL文件进行(说明),并通过(UDDI)进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。

面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。

是XML Web Service 的通信协议。

当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web 服务中的一个或多个操作。

SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。

大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。

在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。

UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。

它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

概念补充:http soap关系http:是一个客户端和服务器端请求和应答的标准(TCP)。

http协议其目的是为了提供一种发布和接收htttp页面的方法一http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。

HTTP服务器则在那个端口监听客户端发送过来的请求。

一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。

soap 在http协议的基础上,一个基于XML的协议。

不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。

关系:SOAP是个通信协议,SOAP在HTTP协议的基础上,把编写成XML的REQUEST 参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端,为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。

Membrane SOAP Monitor,这个soap监听工具。

这是德国的一家在线web服务注册公司predic8做的开源soap监听工具,简单好用。

windows下最新的版本为1.1.2版,下载地址:/membrane/monitor/win86/membrane-monitor-win86-1.1.2.zip还有linux下的版本:/membrane/monitor/linux-x86/membrane-monitor-linux-x86-0.9.4.tg z源码:/membrane/monitor/src/membrane-monitor-src-0.9.4.zip具体使用:1) 运行exe文件(linux下可能是jar文件);2) 点击菜单项membrane->add rule ,进入后默认选项即可,点next;3) 设置端口号(不产生冲突的任意端口),点next;4) 设置主机及端口(部署服务的地址及服务器的端口),完成。

当调用网上发布的服务时,如检查qq是否在线的服务:/webservices/qqOnlineWebService.asmx?wsdl可将4)中的host设为远端服务的网址,如,端口设为服务的端口,上面就是80端口。

当我们监听soap消息时,只要访问了web服务,即可在membrane的界面显示发送及接受的soap消息概念补充:View CodeXML Web Service的特点View Code二、Web Service开发.net平台内建了对Web Service的支持,包括Web Service的构建和使用。

与其它开发平台不同,使用.net平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了。

.net Framework本身就全面支持Web Service,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。

下来我们就一步一步的用Microsoft Visual Studio .net 20058(后面简称 2008)创建和使用一个简单的Web Service。

2.1、用创建一个最简单的Web Service首先,打开VS2005,打开"文件-新建-网站",选择" Web服务"查看Service.cs代码,你会发现 2005已经为Web Service文件建立了缺省的框架。

原始代码为:?默认工程里面已经有一个Hello World的方法了,?namespace WebService1{/// <summary>/// Service1 的摘要说明/// </summary>[WebService(Namespace = "/")]//用于向XML Web services 添加附加信息,如描述其功能的字符串。

//对于将要发布和执行的XML Web services 来说,WebServiceAttribute 不是必需的。

//可以使用WebServiceAttribute 为XML Web services 指定不受公共语言运行库标识符(用于XML Web //XML Web services 在成为公共之前,应该更改其默认的XML 命名空间。

//每个XML Web services 都需要唯一的XML 命名空间来标识它,以便客户端应用程序能够将它与网络 //但是已发布的XML Web services 应该使用更具永久性的命名空间。

例如,可以将公司的Internet 域名 //虽然很多XML Web services 的XML 命名空间与URL 很相似,但是,它们无需指向Web 上的某Namespace 属性更改默认的XML 命名空间。

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]//ConformsTo 获取或设置绑定声称所符合//声明定义一个或多个XML Web services 方法的绑定。

无法继承此类。

//按Web 服务描述语言(WSDL) 的定义,绑定类似于一个接口,原因是它定义一组具体的操作。

//每个XML Web services 方法都是特定绑定中的一项操作。

XML Web services 方法是XML Web service //或者是在应用于实现XML Web services 的类的WebServiceBindingAttribute 中指定的绑定的成员。

//XML Web services 可以通过将多个WebServiceBindingAttribute 属性应用于XML Web services 来实现多 //将一个或多个WebServiceAttribute 属性应用到XML Web services 之后,可以将SoapDocumentMethod //以指示由特定的XML Web services 方法实现的绑定操作。

//设置SoapDocumentMethodAttribute 或SoapRpcMethodAttribute 的Binding 属性以指定XML Web servic[ponentModel.ToolboxItem(false)]//提供工具箱项的基实现。

// 若要允许使用 AJAX 从脚本中调用此Web 服务,请取消对下行的注释。

// [System.Web.Script.Services.ScriptService]public class Service1 : System.Web.Services.WebService////表示此网站项目实现的一个Web 服务,如同将此网站引用添加到项目时以Visual Studio 生成的.asmx{[WebMethod]//向使用 创建的XML Web services 中的某个方法添加此属性(Attribute) 后,就//初始化WebMethodAttribute 类的新实例。

public string HelloWorld(){return "Hello World";}}}直接运行看看效果,点击显示页面上图中的"HelloWorld"超链接,跳转到下一页面:点击"调用"按钮,就可以看到用XML格式返回的Web Service结果下图。

说明我们的Web Service环境没有问题,而且还初步接触了一下最简单的Web Service。

2.2、创建一个简单带有功能的Web Service上面我们宏观的了解了webservice,其实它就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据.在代码文件里,如果我们写了一个函数后,希望此函数成为外部可调用的接口函数,我们必须在函数上面添上一行代码[WebMethod(Description="函数的描述信息")],如果你的函数没有这个申明,它将不能被用户引用.下来我们开始编写一个简单的Web Service 的例子。

相关主题