Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务。
XML Web Service的特点
Web Service的主要目标是跨平台的可互操作性。为了实现这一目标,Web Service 完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。因此使用Web Service有许多优点:
Web Service开发
.net平台内建了对Web Service的支持,包括Web Service的构建和使用。与其它开发平台不同,使用.net平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了。.net Framework本身就全面支持Web Service,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。下来我们就一步一步的用Microsoft Visual Studio .net 2015(后面简称VS.Net 2015)创建和使用一个简单的Web Service。
1:首选建立 一个webservice 服务实例 :(如下图)
创建新的ASP.NET,WEB应用程序注意下图标识
在创建好新的框架后,选中项目节点新添加(web服务asmx)文件,添加确定。
如下图生成简单的,程序语言的鼻祖语言“Hello,world”
生成后我们直接选中运行(如下两图)所示,并且设为起始页
效果如下图展示:(点击Helloworld)将直接调用,页面将返回业务所需要的参数数据。
完成以下图所示后,我们一个简单的webservice调用就成功了。接下来我们设计一个加减法的调用。
在对应的webservice_eg中继续写第二个接口方法,如下代码片段简单的业务返回两数字相加之和
[WebMethod (Description ="数字相加之和")] public int GetSum_Number(int a, int b) { return a + b; }
注意:虽然我们webservice接口做的可能很多,但都是照猫画虎类的,并没有真正的了解webservice中有些关键词的含义.
例如:WebMethod 含义?
WebMethod :web服务的命令,指示这个方法是web服务提供的方法,本身代表的就是一种属性,放在一个方法前面,表明下面的方法可以访问到该属性里的值。
详细WebMethod的用法以及提供的属性:可以参考访问以下微软链接
https://msdn.microsoft.com/zh-cn/library/byxd99hx(v=vs.90).aspx#vbtskusingwebmethodattributeanchorbufferresponse
运行后如图展示:
如果出现的是上面的图片展示效果说明你的WEBSERVICE运行正确,现在记住这个服务地址(即浏览器中的地址),
其实个人理解webservice相当于一个接口,这个接口当然是有地址的,往往在开发我们做好的接口发送给客户(附带接口集成文件等),通过客户端调用接口,在服务器端处理客户的数据 再返回给客户。所以这个地址是有用的,很显示这个WEB服务的地址必须要一直开着,如果断掉的话 会出现什么情况呢??我们接下来继续在ASP.NET网站如何调用这个服务呢?
好的言归正传,接下来就是后台代码如何调用这个WEB服务了。
首先我们得有个页面通过控件去调用(因为业务量有限,没有成熟的返回机制)所以,以界面传参的形式调用返回数据。
1:新建web窗体页面(如下图)
建立新的web页面如下图
给定butten触发事件后,后台写调用上面我们写好的相加的方法的接口:后台调用代码如下
注意:各位看注释
这个时候,我们就得调用写好的接口了,不要担心VS工具.NET编译器为我们提供了引用第三方接口的公共插件类。如下图我们继续。
1:选中你的项目,选择添加web引用(服务)功能列
2:在地址栏中写入,我们上面运行的链接地址,然后转到继续,可以发现:服务中找到了我们写好的接口文件,下面可以自定义引用名称。然后确定继续,发现我们引用出现在了我们项目中如下图:
Ok,当我们成功引用进来前台需要调用的接口文件,我们继续开始前阳事件的调用工作,如下图代码片段:
1:我们开始引用进来接口
////// 按钮调用接口事件 /// /// /// protected void Button1_Click(object sender, EventArgs e) { //这个时候我们发现,我们该怎么调用接口? //别担心,我们继续往下看文档 //在代码中引用我们写好接口并实例化服务客户端webtest_objectSoapClient aa ServiceReference.GaofengSoapClient aa = new GaofengSoapClient(); int sum = aa.GetSum_Number(Convert.ToInt32(TextBox1.Text.Trim()), Convert.ToInt32(TextBox2.Text.Trim())); Label1.Text = sum.ToString(); }
然后我们运行试验!!!!!!!!!!!!!!!!!!
效果展示出来吧,后期如果需要业务调用,直接上业务参数,方便两方直接数据共享发送。
一些复杂的接口和这个原理差不多,根据我们系统的实际需求完善WEB服务的功能。
好的,感谢大家阅读教程,有不足的地方敬请喷,互相学习谢谢。
以下我将实例插件接口上传到文档供参考: