最近在开发过程中发现有一个方法每次请求都会报错,调试后发现导致问题的原因是由于后台方法接受的参数为空,但是从网络请求追踪来看,参数都是正常的,但是我在每次请求之前会对请求的参数进行一次过滤,防止出现敏感字符,对系统产生攻击行为,注释掉这段代码后,功能就可以正常使用,OK,现在定位到了问题所在代码模块,先贴一张出现问题的代码。
这里首先犯了一个错误,C#中using可以用来简化对资源的释放,这里在读取完请求的数据后,就会对资源进行释放,因此后续方法获取到的数据都是null,了解到这一原因后对代码进行了修改。
修改完调试,发现方法获取到的参数仍然为空,这就不得不提另外一个坑了,StreamReader再读取完文件流后,会停留在末尾,导致后续方法读取,是从末尾位置开始读取的,因此方法获取数据为空,最后将读取位置重置,问题得到解决。
还是吃了基础知识不牢固的亏啊!!!!