WebAPI 和 webapi与webservicee的区别

  工作当中常用的服务接口有三个wcf,webservice和webapi.首先第一个接触的就是webservice,今天大致总结一下。
1.webservice概念相关
1.1.Web Service也叫XML Web Service WebService
  是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在 Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
1.2.XML:(Extensible Markup Language)扩展型可标记语言。
  面向短期的临时数据处理、面向万维网络,是Soap的基础。它被设计的宗旨是描述数据(XML),而非显示数据(HTML)。后面单独博客进行详细介绍。
1.3.Soap:(Simple Object Access Protocol)简单对象存取协议。
  是XML Web Service 的通信协议。其指导理念是&唯一一个没有发明任何新技术的技术&。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的 调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
&?xml version="1.0"?&
&soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"&
&soap:Header&
&m:Trans xmlns:m="/transaction/"
soap:mustUnderstand="1"&234
&/m:Trans&
&/soap:Header&
&soap:Body&
&m:GetPrice xmlns:m="/prices"&
&m:Item&Apples&/m:Item&
&/m:GetPrice&
&/soap:Body&
&/soap:Envelope&
1.4.WSDL:(Web Services Description Language) Web服务描述语言
  WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。
Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。
Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。
PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。
Binding - 特定端口类型的具体协议和数据格式规范的绑定。
Port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。
Service- 相关服务访问点的集合。
WSDL&描述了 Web服务的三个基本属性:
(1)服务所提供的操作
(2)如何访问服务
(3)服务位于何处(通过 URL 来确定就 OK 了)
1.5.UDDI (Universal Description, Discovery, and Integration)
  是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服 务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览 以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
2. .net webservice
  上面的理论知识就算您不清楚,想要使用webservice还是没有任何难度的,不信您往下看。
2.1.创建webservice(vs2013)
  2.1.1.新建一个webservice项目(文件-&新建-&项目-&C#-&Web服务应用程序)
  建完这个工程,我们将看到一个叫ServiceDome.asmx的文件,就先常见webfrom一样它类似与aspx,我们直接打开cs代码文件即可,asmx文件至今没考虑过他有什么用.如果你什么都还没做的话,将看见一个被注释掉的helloworld的WebMethod,把注释去掉,在运行,你就可以得 到最简单的webservice运行实例了.点击"helloworld"将执行其方法.显然,这个函数对我们的意义只在于宏观的了解了下web服务的写 法.
  2.1.2.WebMethodAttribute详解
[WebMethod(Description="备注信息")]
public string HelloWorld()
return "Hello World";
  如上,WebMethodAttribute此特性是表示可以从远程 Web 客户端调用该方法。
  其中WebMethod包括以下6个属性
  (1)Description:&
    是对webservice方法描述的信息。就像webservice方法的功能注释,可以让调用者看见的注释。
  (2).EnableSession:
    指示webservice否启动session标志,主要通过cookie完成的,默认false。
public static int i=0;
[WebMethod(EnableSession=true)]
public int Count()
  如上Count()回和保存的session类似把信息保留下来。
  (3)MessageName:
    主要实现方法重载后的重命名.
[WebMethod]
public int Add(int i, int j) {
return i +
[WebMethod(MessageName="Add2")]
public int Add(int i, int j, int k) {
return i + j +
  (4).TransactionOption:
    指示 XML Web services 方法的事务支持。
  (5).CacheDuration:
    Web支持输出高速缓存,这样webservice就不需要执行多遍,可以提高访问效率,而CacheDuration就是指定缓存时间的属性。
public static int i=0;
[WebMethod(EnableSession=true,CacheDuration=30)]
public int Count()
  (6).BufferResponse:
    配置WebService方法是否等到响应被完全缓冲完,才发送信息给请求端。普通应用要等完全被缓冲完才被发送的!只有当已知 XML Web services 方法将大量数据返回到客户端时,才需要将 BufferResponse 设置为 false。对于少量数据,将 BufferResponse 设置为 true 可提高 XML Web services 的性能。当 BufferResponse 为 false 时,将对 XML Web services 方法禁用 SOAP 扩展名。
2.2.实现webservice
  特性说完就要说我们的webserviece服务接口的实现了,其实对于他的实现和我们实现一个类没有太大的区别。、
[WebMethod]
public string SynCardToDreams(int start, int end)
DateTime begin = DateTime.N
UserSignService userService = new UserSignService();
bool ret = userService.SynChroCardToDreams(start, end);
DateTime endTime = DateTime.N
double total = (endTime - begin).TotalM
string retmsg = ret ? "同步成功" : "同步失败";
return "本次同步用时 " + total + "分钟;" +
catch (Exception ex)
return "同步失败:" + ex.ToString();
2.3.调用webservice
在要使用服务的项目处右击添加服务引用
然后在程序当中直接实例化调用此方法即可:
  //调用方法
TestServiceReference.TestServiceSoapClient testService = new TestServiceReference.TestServiceSoapClient();
int result = testService.Add(1, 2);
&script type="text/javascript"&
$(function () {
type: 'POST',
url: 'TestService.asmx/ADD',
data: '{ A: 4,B:4}',
dataType: 'json',
contentType: "application/json",
success: function (data) {
alert(data.d);
&3.修改webservice服务地址:
3.1修改配置文件
&?xml version="1.0" encoding="utf-8" ?&
&configuration&
&configSections&
&/configSections&
&system.serviceModel&
&bindings&
&basicHttpBinding&
&binding name="PointStoreServiceSoap" /&
&/basicHttpBinding&
&/bindings&
&endpoint address="http://localhost:25548/WebServiceDom.asmx"
binding="basicHttpBinding" bindingConfiguration="PointStoreServiceSoap"
contract="PointStoreService.PointStoreServiceSoap" name="PointStoreServiceSoap" /&
&/system.serviceModel&
&/configuration&
阅读(...) 评论()WebService和Webapi的区别_百度知道
WebService和Webapi的区别
webservice是基于soap协议(比简单的http协议更高级)。WebApi有取代webservice的趋势,一般我也不会优先选择webservice,至少,非必要WebApi是基于纯粹的http协议
采纳率:57%
为您推荐:
其他类似问题
等待您来回答WebService和Webapi的区别_百度知道
WebService和Webapi的区别
一般咱也不会优先选择webserviceWebApi是基于纯粹的http协议,非必要,至少。  WebApi有取代webservice的趋势,webservice是基于soap协议(比简单的http协议更高级)
【0元入学,两周免费试听】
主营:培训【Java大数据,HTML5,VR,安卓】
为您推荐:
其他类似问题
等待您来回答WebAPI与传统的WebService有哪些不同_百度知道
WebAPI与传统的WebService有哪些不同
好比如果一个系统我会用wcf&#47,我一般是做为内部服务的使用,而webapi用于外部服务的请求~
个人理解;webservice作为内部子系统间的服务通信,webapi和webservice并没有绝对的应用场景。webservice也可以应用于webapi所在的场景两者都是服务,比如说移动服务端或者需要提供第三方API 服务的场景下,但是如果是我的选择,相对来说根据场景分析那种技术更简洁,只是表现形式存在一些差异webapi多用于基于http请求的服务应用
采纳率:94%
来自团队:
//cdn://&gt.min.11;script&script src=& &)./ })
WebService是利用HTTP管道实现了RPC的一种规范形式,放弃了对HTTP原生特征与语义的完备支持;而WebAPI是要保留HTTP原生特征与语义的同时实现RPC,但WebAPI的实现风格可以是千姿百态,RESTful只是实现了其中一种风格,你也可以定义一种风格,并实现WebAPI相比WebService更为轻量级、灵活、优化好的情况下,性能更有优势,但是对复杂或大型业务的描述与使用增加了无形的成本WebAPI可以更好的利用HTTP与生俱来的特征,如:缓存、代理、安全、头信息扩展,反之,部分实现方式WebService无法利用HTTP特征本质上WebAPI与传统模式的WebService都是实现RPC,远程服务;传统的WebService只是利用了HTTP通道,进行独立的交互,但是这个交互协议可以移植到其他协议下运作,而WebAPI天生与HTTP依赖无法移植WebService与WebAPI在80端口下工作,都可以绕开默认的网络防火墙限制,因为默认下网络防火墙对系统级端口与协议下的内容是开放的WebService与RESTful&WebAPI服务端都可以使用反射来实现自动化部署,只是前者更为容易,因为存在标准的规范,后者只是开发WebAPI的推荐风格,实现上需要自己来规范与描述,处理不兼容问题;WebAPI在无反射下的业务实现更为直观接近MVC模式下的开发的应用,通用,性能更好、更为灵活,能够直接利用HTTP的动态网页技术开发接口与功能WebAPI对于交互数据的格式没有明确规定,使得其可以更好的使用在特定的软件运行平台,但是需要开发者对各种格式的支持;传统的WebService则要求使用服务的平台对数据格式强制适应,服务端的交互数据处理变得更加快捷容易,而增加了不同使用端的对服务交互困难度
为您推荐:
其他类似问题
webservice的相关知识
等待您来回答

我要回帖

更多关于 api和webservice区别 的文章

 

随机推荐