WebService⼯作原理及实例教程
⼀、WebService到底是什么?
先来看下标准的定义:Web Service也叫XML Web Service WebService是⼀种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独⽴的通讯技术。是:通过SOAP在Web上提供的软件服务,使⽤WSDL⽂件进⾏说明,并通过UDDI进⾏注册。
其实,⼀⾔以蔽之:WebService是⼀种跨编程语⾔和跨操作系统平台的远程调⽤技术。
还可以从多个⾓度来理解WebService,从表⾯看,WebService就是⼀个应⽤程序向外界暴露出⼀个能通过Web进⾏调⽤的API,也就是说能⽤编程的⽅法通过Web来调⽤这个应⽤程序。我们把调⽤这个WebService的应⽤程序叫做客户端,⽽把提供这个WebService的应⽤程序叫做服务端。从深层次看,WebService是建⽴可互操作的分布式应⽤程序的新平台,是⼀个平台,是⼀套标准。它定义了应⽤程序如何在Web上实现互操作性,你可以⽤任何你喜欢的语⾔,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进⾏查询和访问。
⼆、WebService平台技术
SOAP、WSDL、UDDI(UniversalDescriptionDiscovery andIntegration)三者构成了WebService的三
要素。下⾯,详细阐述这三⼤技术:
SOAP
WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采⽤XML格式封装,并增加了⼀些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC⽅法来调⽤Web Service。
SOAP协议组成:
SOAP协议 = HTTP协议 + XML数据格式
SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码⽅式。打个⽐喻:HTTP就是普通公路,XML就是中间的绿⾊隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的⾼速公路。
WSDL
好⽐我们去商店买东西,⾸先要知道商店⾥有什么东西可买,然后再来购买,商家的做法就是张贴⼴告海报。 WebService也⼀样,WebService客户端要调⽤⼀个WebService服务,⾸先要有知道这个服
务的地址在哪,以及这个服务⾥有什么⽅法可以调⽤,所以,WebService务器端⾸先要通过⼀个WSDL⽂件来说明⾃⼰家⾥有啥服务可以对外调⽤,服务是什么(服务中有哪些⽅法,⽅法接受的参数是什么,返回值是什么),服务的⽹络地址⽤哪个url地址表⽰,服务通过什么⽅式来调⽤。
WSDL(Web Services Description Language)就是这样⼀个基于XML的语⾔,⽤于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,⼜是⼈可阅读的,这将是⼀个很⼤的好处。⼀些最新的开发⼯具既能根据你的Web service⽣成WSDL⽂档,⼜能导⼊WSDL⽂档,⽣成调⽤相应WebService 的代理类代码。
UDDI
UDDI (Universal Description, Discovery, and Integration) 是⼀个主要针对Web服务供应商和使⽤者的新项⽬。在⽤户能够调⽤Web服务之前,必须确定这个服务内包含哪些商务⽅法,到被调⽤的接⼝定义,还要在服务端来编制软件,UDDI是⼀种根据描述⽂档来引导系统查相应服务的机制。UDDI利⽤SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查注册信息。它采⽤XML格式来封装各种不同类型的数据,并且发送到注册中⼼或者由注册中⼼来返回需要的数据。
三、WebService调⽤原理
实现⼀个完整的Web服务⼯作流程:
Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中⼼注册;
Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中⼼,为请求者寻满⾜请求的服务;
Web服务中介者向Web服务请求者返回满⾜条件的Web服务描述信息,该描述信息⽤WSDL写成,各种⽀持Web服务的机器都能阅读;
利⽤从Web服务中介者返回的描述信息⽣成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调⽤;
Web服务提供者按SOAP消息执⾏相应的Web服务,并将服务结果返回给Web服务请求者。
四、WebService实例教程
调用webservice服务以.Net创建WebService服务为例:
1. 启动VisualStudio(本教程⽤VisualStudio2017为例),新建⽹站项⽬;
2.选择新建ASP.NET 空⽹站,点击“确定”,继续;
3.点击新建的项⽬名称 右键–>添加–>添加新项;
4.在添加新项列表中选择Web服务(ASMX),点击“确定”, 继续;
5.在webservice.cs中添加⾃定义测试功能代码;
//⾃定义测试功能
[WebMethod(Description = "返回两数之和")]
public int GetSum(int a, int b)
{
return a + b;
}
6.我们开始运⾏⼀下WebService.asmx⽂件;
如果运⾏的效果和上⾯的截图⼀致,那么你的WebService运⾏正确,现在记住这个服务地址(即浏览器中的地址)。接下来,我们⼀起看看在ASP.NET⽹站中如何调⽤这个服务呢?
我们,继续!
7.和第⼆步⼀样,新建⼀个空⽹站项⽬;
8.点击新建的项⽬名称 右键–>添加–>添加新项,在添加新项列表中选择Web窗体,点击“确定”, 继续;
9.在新建的Add.aspx页⾯中 ,在⼯具箱中拖出三个控件:textbox1,textbox2,label分别⽤来显⽰ 整数a,整数b,计算的和⽤label显⽰。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。