• WebService简介


    一些博客地址:

    WCF、WebAPI、WCFREST、WebService之间的区别:
    
    http://www.cnblogs.com/markli/p/4460564.html
    
    04SOA架构设计经验分享—架构、职责、数据一致性
    
    http://www.cnblogs.com/wangiqngpei557/p/4486177.html
    
    WebService登陆验证四种方式:
    
    http://www.cnblogs.com/zuowj/p/4981919.html
    
    前端解决跨域问题的8种方案
    
    https://blog.csdn.net/weixin_39939012/article/details/83822126
    View Code

    浅析深究什么是SOA:http://blog.vsharing.com/fengjicheng/A1059842.html

    SOA:面向服务架构,是构造分布式系统的方法论,也会提供一些标准、工具。

     什么是分布式?以前只能一台电脑做的事,现在可以多态服务器一起协作。

    在.NET 中怎么做法哦分布式?

      1、队列

      2、第三方存储

      3、DB

    WebService是寄宿在IIS,也就是必须在网站项目。

    HTTP协议、SOA协议:

      1、Http传输信道,A服务器到B服务器,数据是什么格式传递的

      2、XML的数据格式,Http传输协议得到的有用数据

      3、SOA协议,封装格式:在分布式的环境中,描述了如何做数据交换的一个轻量级协议

      4、WSDL,属于WebService的标配,标准化描述服务,方便调用的

      5、UDDI,根据描述查找服务的机制

    可以新建一个WebService的服务。诗意asmx类型的文件。

     public class MyWebService : System.Web.Services.WebService
     {
         [WebMethod]
         public string HelloWorld()
         {
             return "Hello World";
         }
    
    }

    这个[WebMethod]是一定要加上的。

    在浏览器上面浏览的是这个结果,点击对应的方法,就可以进行测试了。

     

     服务端调用WebService,添加服务引用,基于svcUtil.exe生成的,与WSDL生成的一个代理,屏蔽服务调用的复杂性。

    单元测试:

      1、测试方法

      2、回归测试

      3、断言Assert

     WebServ安全认证:

      1、Form认证,windows认证

      2、在服务里面增加账号密码认证。

     WebService的方法没有重载。

    3、SoapHeader验证:

    /// <summary>
    /// Header:分配个加密钥  账号密码加密
    /// 
    /// </summary>
    public class CustomSoapHeader : System.Web.Services.Protocols.SoapHeader
    {
    
        private string userName = string.Empty;
        private string passWord = string.Empty;
        public CustomSoapHeader()//必须有一个无参数的构造函数
        { }
    
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="passWord">密码</param>
        public CustomSoapHeader(string userName, string passWord)
        {
            this.userName = userName;
            this.passWord = passWord;
        }
    
        /// <summary>
        /// 获取或设置用户用户名
        /// </summary>
        public string UserName
        {
            get { return userName; }
            set { this.userName = value; }
        }
    
        /// <summary>
        /// 获取或设置用户密码
        /// </summary>
        public string PassWord
        {
            get { return passWord; }
            set { this.passWord = value; }
        }
        public bool Validate()
        {
            return this.UserName.Contains("Bingle") && this.PassWord.Contains("123456");
        }
    
    }
    
    
    [WebMethod]
    [SoapHeader("SoapHeaderProp")]
    public string GetInfo(int id, string name)
    {
        if (!this.SoapHeaderProp.Validate())
        {
            throw new SoapException("身份验证失败", SoapException.ClientFaultCode);
        }
        return Newtonsoft.Json.JsonConvert.SerializeObject(new
        {
            Id = id,
            Name = name,
            Remark = $"This is {id} {name}"
        });
    }
    View Code
  • 相关阅读:
    Java比较两个对象的不同之处
    windows下MongoDB的安装及配置
    springboot对应的springcloud版本
    Spring注解 @Scope 详解
    https HttpUtils 绕过证书
    thymeleaf 基本使用
    java8 groupby 对多个字段进行去重, 统计 partitioningBy
    linux硬件数据
    Nginx referer防盗链模块
    Nginx HTTP 过滤addition模块(响应前后追加数据)
  • 原文地址:https://www.cnblogs.com/taotaozhuanyong/p/11565574.html
Copyright © 2020-2023  润新知