web service 学习

是什么?

        是一种远程调用技术,这种技术提供一些接口,这些接口实现让客户端和服务端进行通信和数据交换,并且让通信和交换与平台和开发语言无关。也可以说是提供了许多函数。客户端调用服务端的函数。

        远程调用:客户端通过SOAP协议,传送函数参数数据,向服务端请求调用一个函数,函数在服务器端执行,返回一个结果,结果再通过协议传送到客户端,完成 一次远程调用。

        跨语言:服务端提供的函数是C++编写,客户端使用的语言是Java,怎么有点像DLL呢?

使用的标准:

       WSDL:Web Service Description Language Web服务描述语言,基本于XML的语言。描述函数的参数和返回值等函数信息的语言。客户端调用请求时,调用服务器哪个函数呢?传递的参数是什么呢?这些信息就是用XML语言格式来描述的。

      WSDL文件:是服务器端提供服务使用的,这个文件是以XML格式写的,内容翻译成人能理解的语言就是,服务器端提供了哪些函数,这些函数在哪个服务中,这个服务又是在哪个IP,这些函数怎么调用,函数有哪些参数,函数的返回值。   文件保存在服务器上,通过URL能访问它。服务器把WSDL文件地址告诉客户端,在UDDI(服务注册中心)上注册就OK。

    UDDI:提供了一种方法,这种方法能够让服务消费者得到服务提供者提供的接口使用说明。

      SOAP: = Http + XML;基于HTTP协议。这个协议的作用就是  封装数据(XML)+发送数据(HTTP);

工作原理:

         客户端请求调用服务端函数,以XML格式封装,通过HTTP发送到服务端,服务端得到数据后分析XML格式的数据,分析数据并知道调用哪个类的哪个方法,执行方法,把执行函数得到的结果再以XML格式封装,再以HTTP发送到客户端。总体来说,通过SOAP发送数据。

技术使用双方:服务提供者和服务消费者。服务提供者编写函数与类(也就是编写服务),让消费者调用;消费者调用函数和类。

搭建技术支持需要的工具

       Tomcat:前端与HTTP及网络挂钩,得到其他机器发来的的数据,把数据发送到服务容器(也就是处理数据的程序AXIS等)。

       AXIS:把从Tomcat得到的数据处理一下,处理过程是,找配置文件并根据配置文件和数据来得到要调用哪个类的哪个函数,并执行函数,得到返回值,再把返回值传给Tomcat,传给Tomcat前数据要封装为SOAP消息。


在VS2010中创建Web Service并使用

       1、创建Web Service

       2、发布Web Service服务

      3、客户端使用Web Service提供的类,及其函数

       第一步:创建Web Service

                   VS2010中新建空的asp.net网站,在“解决方案资源管理器---项目”上右键添加新项:


添加Web服务:


在asmx文件中编写类和方法,作为提供的服务内容。

第二步:布置服务,就像布置IIS站点一样

第三步:客户端使用Web Service,以asp.net网站为例,也可以由WinForm应用程序来引用服务

               新建一个Web网站,在解决方案资源管理器----项目上右键添加服务引用:

如果如下:


客户端应用程序中出现代码:并且会在应用程序目录下生成文件夹和文件。


在应用程序的代码中引用空间、使用类用其中的方法

添加命名空间:using ServiceReference1; 这个命名空间是在引用Web服务时自己命名的。

使用类:WebServiceSoapClient wssc = new WebServiceSoapClient();不管服务器端提供的是什么类名,客户端总是用这个类WebServiceSoapClient ,难道是代理?一个中介的东西?用对象wssc来调用WebService提供的各种方法。

原文地址:https://www.cnblogs.com/ddx-deng/p/3755815.html