# WebService的特征: 1、基于SOAP协议的,数据格式为XML 2、只支持HTTP协议 3、不是开源的,但可以被任意一个了解XML的人使用 4、只能部署在IIS上 SOAP :简单对象访问协议Simple Object Access Protocol,传输层 ,,XML传输消息 WSDL:Web Server Description Language :Web Server描述语言(元数据),给客户端生成代理类的一个描述信息 UDDI :提供了一组基于标准的规范用于描述和发现服务,统一描述,发现和集成(UDDI-Universal Descript,Discovery,Integration),提供注册和查找服务 客户端在UDDI注册表(Registry)查找服务,取得服务的WSDL描述,通过SOAP调用服务。 # WebAPI 特征: 1、是简单的 构建HTTP服务的新框架 2、在.net平台上WebApi是一个开源的,理想的,构建REST-FUL服务的技术 3、不像WCF REST Server 它可以使用HTTP的全部特点(URI,request/response头,缓存,版本控制,多种内容格式) 4、支持MVC的特征。像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。 5、可以部署在IIS和应用程序上 6、轻量级框架,并且对限制带宽的设备,比如智能手机等支持的很好 7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。 8、Web API非常适合构建移动客户端服务 ## webservice 和webapi区别: 1、webservice是基于SOAP协议的,数据格式是XML,webapi遵循的http协议,它的Response可以被而Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。 2、webservice它只能部署在IIS上,而webapi可以寄宿在不同的宿主上(寄宿的本质就是利用一个具体的应用程序为Web Api提供一个运行的环境,并解决请求的接收和响应的回复),如Web Host,Self Host方式 3、webservice 也可以通过ajax访问: ```java // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 [System.Web.Script.Services.ScriptService] 但是需要注意的是:传参数方面的区别: data: "{'paraStu':{'NAME':'测0813','SEX':'男'}}", 而webapi的参数; data: {'NAME':'测0813','SEX':'男'}, ``` 也就是webservice在data里面必须用参数名paraStu进行赋值,而webapi和mvc模式下的是不需要的。两者都可以直接用实体接参数 4、webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作,并且对限制带宽的设备,比如智能手机等支持的很好 ## 以下情况可以考虑用Web API 1、需要Web Service但是不需要SOAP 2、需要在已有的WCF服务基础上建立non-soap-based http服务 3、只想发布一些简单的Http服务,不想使用相对复杂的WCF配置 4、发布的服务可能会被带宽受限的设备访问 5、希望使用开源框架,关键时候可以自己调试或者自定义一下框架 6、如果服务需要在http协议上,并且希望利用http协议的各种功能 7、如果服务需要被各种客户端(特别是移动客户端)调用 webapi多用于基于http请求的服务应用,比如说移动服务端或者需要提供第三方API服务的场景下。 webservice也可以应用于webapi所在的场景,一般是做为内部服务的使用,好比如果一个系统用wcf/webservice作为内部子系统间的服务通信,而webapi用于外部服务的请求。 ## web service相对http (post/get)有好处吗? 1.接口中实现的方法和要求参数一目了然 2.不用担心大小写问题 3.不用担心中文urlencode问题 4.代码中不用多次声明认证(账号,密码)参数 5.传递参数可以为数组,对象等... ## web service相对http(post/get)快吗? 答:由于要进行xml解析,速度可能会有所降低。 ## web service 可以被http(post/get)替代吗? 答:完全可以,而且现在的开放平台都是用的HTTP(post/get)实现的。 ## 总结 httpservice通过post和get得到你想要的东西。 webservice就是使用soap协议得到你想要的东西,相比httpservice能处理些更加复杂的数据类型。 http协议传输的都是字符串了,webservice则是包装成了更复杂的对象。 1. webservice走HTTP协议和80端口。 2. api,用的协议和端口,是根据开发人员定义的。 3. api类似于cs架构,需要同时开发客户端API和服务器端程序。 4. WebService则类似于bs架构,只需要开发服务器端,不需要开发客户端,客户端只要遵循soap协议,就可以调用 这样对比的话webservice貌似并不好用。但是我们为什么要用它呢,理由如下: 1、可跨编程语言和跨操作系统 2、可移植性:传统的WebService只是利用了HTTP通道,进行独立的交互,但是这个交互协议可以移植到其他协议下运作 最后修改:2020 年 03 月 10 日 12 : 04 AM © 著作权归作者所有 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付