• 【原创】cs+html+js+css模式(四):RemoteCallHandler的修改


    1.         回顾:

    在上一篇我们把所用到的RemoteCallHandler详细的介绍了,包括了它自己内部进行流的窃取,与在访问时进行的数据解析,让JS中的函数能与cs进行交互的等知识,对这些知识有了大体的了解,基本了解了一些。

    2.         介绍:

    本章还是介绍RemoteCallHandler,为什么现在还是介绍此类,因为由于我们所在的区域不同,所用的浏览器不同,会在我们的requestHandler中生成多余的字符,会出现gzip的头文件,为了解决此头文件的问题,我们现在就把上一篇的代码进行修改。

    3.         RemoteCallHandler类的修改:

     

    原来的代码
     /*获取要调用的后台函数名*/
    string methodName = request.Headers["CallingMethod"];
    /*判断操作类型名是否为空*/
    if (string.IsNullOrEmpty(typeName)) { throw new MissingCallingTypeException(); }
    /*判断调用的后台函数名是否为空*/
    if (string.IsNullOrEmpty(methodName)) { throw new MissingCallingMethodException(); }

     

    修改后的代码
    //主要修改位置:此处是用特殊的字符用正则匹配后,直接取后面的字符信息
    Match m = Regex.Match(request.Headers["CallingMethod"].Replace(";",""), @"(?<method>\w+)517MethodEnd");
    if (!m.Success){
       LogUtility.TxtLog.WriteTraceLog(
    string.Format("User:{0}\tAssembly:{1}\tTypeName:{2}\tMethodName:{3}"(HttpContext.Current.Session["LoginStaff"as Better.Model.MStaffInfo).staff_id, assembly, typeName, request.Headers["CallingMethod"]));
       throw new MissingCallingMethodException(); 
    }
    string methodName = m.Groups["method"].Value;

     基本的修改就只有这里,那么我们就再也不害怕requestheader中出现gzip的情况了,下一篇我们会讲js中的调用

  • 相关阅读:
    [TimLinux] TCP全连接队列满
    [TimLinux] JavaScript 中循环执行和定时执行
    [TimLinux] JavaScript 事件
    [TimLinux] JavaScript 获取设置在CSS类中的属性值
    [TimLinux] JavaScript 面向对象程序设计
    [TimLinux] JavaScript 引用类型——Date
    [TimLinux] django html如何实现固定表头
    [TimLinux] Django 信号
    [TimLinux] Django 中间件
    安卓存储之文件存储方式j
  • 原文地址:https://www.cnblogs.com/NoRoad/p/1701141.html
Copyright © 2020-2023  润新知