zoukankan      html  css  js  c++  java
  • .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使用,用来处理前台发送来的数据更为方便。个人见解,如果大家有其他想法的话,可以多多发言

  • 相关阅读:
    html模板与json数据交互
    利用tempo将json数据填充到html模板
    利用json2html将json数据填充到html模板
    seajs实例
    jQuery用noConflict代替$
    vue-router各个属性的作用及用法
    vue组件级路由钩子函数介绍,及实际应用
    Vue路由scrollBehavior滚动行为控制锚点
    vue当前路由跳转初步研究
    vue路由使用踩坑点:当动态路由再使用路由name去匹配跳转时总是跳转到根路由的问题
  • 原文地址:https://www.cnblogs.com/ckka/p/11378951.html
Copyright © 2011-2022 走看看