【原创】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中的调用

原文地址:https://www.cnblogs.com/NoRoad/p/1701141.html