http-Post请求,Post Body中的数据量过大时出现的问题
公司有位大神发现的问题,给出的解决方案,在此记录一下。
在ASP.NET中,当Post Body中的数据量过大的时候(超过maximum request length),.NET会把超过的部分放入Buffered Stream中,在读取完这个Buffered Stream,才能读取Request的InputStream,否则,会抛出异常 。
public void ResponseHandler(HttpContext httpContext) { var s=new StreamReader(this.httpContext.Request.InputStream);//会报错 var r=s.ReadToEnd(); }
应改为:
public void ResponseHandler(HttpContext httpContext) { var streamReader = new StreamReader(stream=Request.GetBufferedInputStream()); var streamRead = streamReader.ReadToEnd(); var s=new StreamReader(this.httpContext.Request.InputStream); var r=s.ReadToEnd(); }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步