.NET中使用WebService,以及和一般处理程序、类库的区别
首先我们来看一下如何创建Web Service
首先在解决方案中新建项,选择ASP.NETWeb应用程序
然后选择一个空的项目就可以,单击确定
项目建完之后,在项目上右键-->添加-->新建项,选择 Web服务(ASMX),添加
如果想要添加新的函数,必须在函数上方打上WebMethod标签
接下来就是调用,首先在我们项目的引用中,右键-->添加服务引用
单击发现
选择要添加的asmx文件,下面的命名空间也可以修改,然后点击确定,如果出现下面的弹框,添加失败的话,生成-->重新生成解决方案 然后在次添加就好了
添加完成之后,该项目中会出现一个ConnectedService,打开之后会出现引用的Service服务
然后在程序中就可以使用了,使用之前先添加命名空间,using 项目名称.刚才设置的命名空间,例如:
调用
//使用using释放资源
//实例化DateTimeServiceSoapClient对象,该对象的类型是WebService中的类型加上SoapClient
using (DateTimeServiceSoapClient client = new DateTimeServiceSoapClient()) {
//打开
client.Open();
//调用方法,接收返回值
DateTime dt = client.GetDateTimeNow();
//显示
Console.WriteLine(dt);
}
如果更新WebService中的函数的主体,重新生成之后,调用的话是不需要做出任何改变的
如果WebService中添加了新的函数,先重新生成解决方案,然后要右键服务引用-->更新服务引用即可
WebService的用法给我的第一感觉就是和类库并没有太大的区别,都是添加引用,调用方法。可是实际上内部的原理确是天差地别。
WebService使用的是soap协议进行通讯,本质上还是使用http请求进行通讯,通过http请求发送soap格式的xml文件,服务器会对xml文件进行解析,然后服务器端返回的也是soap格式的xml文件,然后客户端进行解析。
然后我们来看一下没有被解析过的HTTP POST协议返回的xml文件是什么样子的,右键asmx文件,单击在浏览器中进行查看
点开我们刚才写的这个方法
点击调用
这个就是HTTP POST请求返回的格式
而添加普通引用的话,实际上会在bin目录下将所引用程序的dll文件复制过来,如果项目不在同一个解决方案,被引用的项目有改动的话,还需要把dll文件再次复制一份放到bin目录下,是非常麻烦的。
WebService从执行的流程上来看,和ajax+一般处理程序差不多,都是请求然后处理请求。就我个人而言,WebService用于后端操作较为方便,因为操作都是封装好的,不需要自己创建HttpWebRequest对象发送请求,也不需要对返回的xml文件进行解码;而一般处理程序和ajax使用,用来处理前台发送来的数据更为方便。个人见解,如果大家有其他想法的话,可以多多发言
.NET中使用WebService,以及和一般处理程序、类库的区别的更多相关文章
- 在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查.我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数 ...
- 如何开发Domino中的WebService
在domino中写webservice可以使用LotusScript,也可以使用java,由于LotusScript API提供的功能多数都是操作domino数据库中文档的,在web service中 ...
- 用JAX-WS在Tomcat中公布WebService
JDK中已经内置了Webservice公布,只是要用Tomcat等Webserver公布WebService,还须要用第三方Webservice框架. Axis2和CXF是眼下最流行的Webservi ...
- 在VS中实现webService的一个demo(图解)
在VS中实现webService的一个demo(图解) 先创建一个web项目,创建好web项目后,添加新建项——web服务 在新建好的web服务文件中写如下代码: 生成当前解决方案. 新建一个winf ...
- 你真的了解JAVA中与Webservice相关的规范和实现吗?
非常多人在项目中使用Webservice,仅仅是知道怎样公布Webservice,怎样调用Webservice,但真要论其来龙去脉,还真不一定清楚. 一切一切还要从我们伟大的sun公司规范说起. JA ...
- 存储过程中调用webservice
存储过程中调用webservice其实是在数据库中利用系统函数调用OLE. 1.查找webservice api 可得到MSSOAP.SoapClient. 2.查找API 接口可得到mssoapin ...
- Android使用ksoap2调用C#中的webservice实现图像上传
目录: 一. android使用ksoap2调用webservice 二. 异步调用 三. Android使用ksoap2调用C#中的webservice实现图像上传参考方法 四. 图像传输中Base ...
- 用JAX-WS在Tomcat中发布WebService
JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架.Axis2和CXF是目前最流行的Webservice框架 ...
- C++程序中调用WebService的实现
前言 因为最近的项目中需要运用到在MFC程序中调用WebService里面集成好了的函数,所以特意花了一天的时间来研究WebService的构建以及如何在MFC的程序中添加Web引用,进而来实现在C+ ...
- java web项目(spring项目)中集成webservice ,实现对外开放接口
什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...
随机推荐
- NOIP2011聪明的质监员题解
631. [NOIP2011] 聪明的质监员 ★★ 输入文件:qc.in 输出文件:qc.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 小 T 是一名质量监督 ...
- Neo4j电影关系图Cypher
, tagline:'Welcome to the Real World'}) }) }) }) }) }) }) }) CREATE (Keanu)-[:ACTED_IN {roles:['Neo' ...
- something good
CF292A CF304B CF383A CF409D CF409F CF632A CF652B CF656A CF656B CF656D CF659A CF678A CF697A CF735D CF ...
- xpath路径的写法
关于xpath路径的写法 1.选取节点 表达式 描述 nodename 选取此节点的所有子节点. / 从根节点选取. // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置. . 选取当前节点 ...
- 2019杭电多校第一场hdu6581 Vacation
Vacation 题目传送门 update(O(n)) 看了那个O(n)的方法,感觉自己想的那个O(nlogn)的好傻,awsl. 0车最终通过停车线的时候,状态一定是某个车堵住后面的所有车(这个车也 ...
- 科密指纹考勤机B329采集
昨天项目用到了科密指纹考勤机B329. 暂记录下碰到的问题,及其解决办法,以备查询. 1.下载科密的二次开发包SDK“10079” .地址:( http://pan.baidu.com/s/1i39m ...
- random,time,sys,os
import random print(random.random()) #(0,1)大于0且小于1之间的小数 print(random.randint(1,3)) #大于等于1且小于等于3之间的整数 ...
- python基础之list列表的增删改查以及循环、嵌套
Python的列表在JS中又叫做数组,是基础数据类型之一,以[]括起来,以逗号隔开,可以存放各种数据类型.嵌套的列表.对象.列表是有序的,即有索引值,可切片,方便取值.列表的操作和对字符串的操作是一样 ...
- 你真的熟练使用webpack吗?
https://www.webpackjs.com/ 官网地址 当自己在简历中写着熟练使用webpack的时候,殊不知自己只是在vue脚手架,react脚手架的路上走着比较轻松而已. 当面试官问你这几 ...
- DataGridView 的使用总结
一.属性应用 1.设置单元格鼠标点击后就进入编辑状态 设置DataGridView控件的EditMode这个属性,即 EditMode = System.Windows.Forms.DataGridV ...