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

本文针对RemoteCallHandler在不同浏览器环境下可能出现的GZIP头文件问题进行了改进。通过正则表达式处理请求头部信息,确保了跨平台调用的一致性和稳定性。

1.         回顾:

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

2.         介绍:

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

3.         RemoteCallHandler类的修改:

 

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

 

 

ExpandedBlockStart.gif修改后的代码
//主要修改位置:此处是用特殊的字符用正则匹配后,直接取后面的字符信息
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/archive/2010/03/31/1701141.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值