• 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的调用就讲解结束了。

      

  • 相关阅读:
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 43 字符串相乘
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 42 接雨水
    Java实现 LeetCode 41 缺失的第一个正数
    Java实现 LeetCode 41 缺失的第一个正数
    Java实现 LeetCode 41 缺失的第一个正数
  • 原文地址:https://www.cnblogs.com/chenchaochao034/p/11110252.html
Copyright © 2020-2023  润新知