zoukankan      html  css  js  c++  java
  • WebService入门

    WebService基础  

      Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。

           因为网上已经有很多博客都讲了WebService相关的概念,所以这里就不再赘述,仅对WebService的几个特点进行下归纳。

      跨语言通信

        因为WebService采用的是XML来进行数据的传输,所以能够创建独立于语言、分布式可集成的服务平台。

      高可用接口

        WebService不需要安装组件,只需直接调用远端WebService即可,甚至可以将多个WebService的功能集中起来再通过自己的方式暴露出去,能够非常友好的为用户提供服务接口。

    WebService开发

      这里我们再.net平台为例,因为.net平台不需要其它工具或者SDK就可以进行WebService的开发。我采用的VS版本是Microsoft Visual Studio 2019。

      创建项目

      首先我们创建一个一个ASP.NET Web 应用程序(.NET FrameWork)项目,模板可选择”空”。

      添加Web服务

      给新生成的解决方案添加一个“Web服务(ASMX)”文件,名称为UserService,如下图所示

      添加了Web服务的解决方案及Web服务文件如下:

      

      添加接口

      如上图的默认接口HellowWorld,需要在接口方法的上面添加 [WebMethod],也可以 [WebMethod(Description="*****")],将该接口的描述添加到““中。

        此处我们以获取用户信息的接口为例。

    public class User
    {
            public string UserName { get; set; }
            public string Age { get; set; }
    }
    
    [WebMethod(Description ="提交姓名及年龄来获取一个用户实体")]
    public User GetUser(string name, string age)
    {
            return new User { UserName = name, Age = age };
    }

      

      发布服务

      此处给大家介绍两种发布方式,第一种最简单,直接F5运行,即可得到如下界面

    即为发布成功,但是如果停止运行,该服务就相当于不存在了。

    这里重点讲述的是第二种方法,部署到IIS。

    首先启动Internet Information Service(IIS)管理器。新建一个网站,如下

      如果遇到问题可参考下面这篇博客:

        https://www.cnblogs.com/qq260250932/p/4383051.html

      部署成功后,同浏览器浏览http://192.168.209.117/UserService.asmx即可得到与VS直接运行一样的页面。

    WebService接口调用

      Javascript调用webservice

          注:网上很多种方法,经过验证仅下面一种方法有效

      首先我们得新建一个网页,代码如下:

    <!DOCTYPE html>
    <html>
    <head>
        <title>测试实例</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script>
            function myFunction() {}
    /**/</script>
    </head>
    
    <body>
        <button onclick="myFunction()">点我</button>
    </body>
    </html>

      我们还需要给myFunction添加实现,实现如下:

    function myFunction() {
        var URL = "http://192.168.209.117/UserService.asmx/GetUser";
        var Params = "name=leftfist&age=28";//传给WebService的参数
        var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp.Open("POST",URL, false);//用POST方法,此处可改为GET方法
        xmlhttp.SetRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xmlhttp.SetRequestHeader ("Content-Length",Params.length);
                xmlhttp.send(Params);
                var result = xmlhttp.status;
                //OK
                if (result == 200) {
                    document.write(xmlhttp.responseText);
                }
                xmlhttp = null;
            }

      特别注意,xmlhttp.SetRequestHeader("Content-Type","application/x-www-form-urlencoded"),经过验证设置其他值均会报错。

      点击按钮,即可获取到以下结果

      .net调用webservice

      首先在.net项目中添加服务引用

      添加服务引用后双击服务引用,即可看到添加该服务引入的类

      最下面的UserServiceSoapClient即为我们需要调用的接口类。

      比如示例代码如下

    var service = new UserServiceSoapClient();
    var user = service.GetUser("chenchaochao", "28");
    if (user != null)
         Console.WriteLine(user.UserName + "  " + user.Age);

      运行后控制台会输出 chenchaochao  28,如下图

      至此,通过Javascript和C#对WebService的调用就讲解结束了。

      

  • 相关阅读:
    LIBSVM
    tf-idf
    DIV+CSS例子
    网页背景设置
    获取JDBC中的ResultSet的记录的条数
    SQL 基本语句
    经典SQL语句大全
    JS(截取字符串,显示当前系统时间yyyy-MM-dd,从文本框得到的数值计算)
    JavaScript实现全排列
    Java发送邮件
  • 原文地址:https://www.cnblogs.com/chenchaochao034/p/11110252.html
Copyright © 2011-2022 走看看