zoukankan      html  css  js  c++  java
  • WebService

    本地测试调用webservices。https://blog.csdn.net/bigpudding24/article/details/52314888

    WebService调试:修改后的文件,首先生成一下,否则调试时断点不能进入。

    WebService发布后,服务是封装在一个wsdl(Web Service Description Language,Web服务描述语言)文件中,客户端发请求主要是向发布好的wsdl地址以SOAP方式发请求,调用过程如下:

    1.服务端生成服务描述文件,以供客户端获取。

    2.客户端取得服务端的服务描述文件,解析该文件从而获得服务端的服务信息以及调用方式。

    3.客户端指定调用方法和参数,生成恰当的SOAP请求消息,发往服务端,并等待服务端返回的SOAP回应消息。

    4.服务端接收客户端发来的SOAP请求消息,解析其中的方法调用和参数格式。并根据wsdl的描述,完成指定功能,将返回值放入SOAP回应消息返回给用户。

    5.客户端解析得到的返回值。

    WebService的三要素是: SOAP (Simple Object Access Protocol):简易对象访问协议,soap用来描述传递信息的格式。 WSDL (WebServices Description Language):Web服务描述语言,用来描述如何访问具体的接口。 UDDI (Universal Description Discovery and Integration):通用描述、发现及整合,用来管理、分发、查询WebService。

    SOAP:

    WebService通过HTTP协议发送请求和接收结果,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明 HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。SOAP协议 = HTTP协议 + XML数据格式(可扩展型标记语言)。SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。(除了WS使用,邮件SMTP传输协议也使用)

    WSDL::web描述性语言【类比使用说明书】

    好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方 法可以调用,所以,WebService服务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

    WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的 Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

    WSDL 文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。 WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

    UDDI:服务提供者将服务内容放在一个公共的地址让大家找到 

    UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”,是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。

    例如行业发布了一个用于航班比率检测和预订的 UDDI 标准,航空公司就可以把它们的服务注册到一个 UDDI 目录中。然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。当此界面被找到后,旅行社就能够立即与此服务进行通信。

    通讯技术:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。 

    1,动态调用服务
    WCF、WebAPI、WCFREST、WebService之间的区别
    在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API。在.net平台下,你有很多的选择来构建一个HTTP Services。我分享一下我对Web Service、WCF以及Web API的看法。
      Web Service
      1、它是基于SOAP协议的,数据格式是XML
      2、只支持HTTP协议
      3、它不是开源的,但可以被任意一个了解XML的人使用
      4、它只能部署在IIS上
     
      WCF
      1、这个也是基于SOAP的,数据格式是XML
      2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.
      3、WCF的主要问题是,它配置起来特别的繁琐
      4、它不是开源的,但可以被任意一个了解XML的人使用
      5、它可以部署应用程序中或者IIS上或者Windows服务中
     
      WCF Rest
      1、想使用WCF Rest service,你必须在WCF中使用webHttpBindings
      2、它分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词
      3、要想使用其他的HTTP动词,你需要在IIS中做一些配置,使.svc文件可以接受这些动词的请求
      4、使用WebGet通过参数传输数据,也需要配置。而且必须指定UriTemplate
      5、它支持XML、JSON以及ATOM这些数据格式
     
      Web API
      1、这是一个简单的构建HTTP服务的新框架
      2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术
      3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)
      4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮
      5、它可以部署在应用程序和IIS上
      6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
      7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
      
      WCF和WEB API我该选择哪个?
      1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF
      2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。
      3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
      4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

    Hi, Tomorrow!
  • 相关阅读:
    Java实现 LeetCode 69 x的平方根
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 66 加一
    Java实现 LeetCode 66 加一
    CxSkinButton按钮皮肤类
  • 原文地址:https://www.cnblogs.com/aikeming/p/11748469.html
Copyright © 2011-2022 走看看