今天在手机App测试接口的时候发现一个通过POST方式的接口金沙网址

C# Request.InputStream 读取输入流为空的因由处理,

前天在手机App测验接口的时候开采多少个透过POST格局的接口
获取body中的参数一贯为空,可是在数据量小的时候却足以赢获得多少,开始狐疑是或不是POST的长度有限制,然后在web.config中期维修改了须臾间maxRequestLength,如下

<system.web>
    <httpRuntime targetFramework="4.5" maxRequestLength="20480" />
  </system.web>

下一场开掘获取的值如故为空,然后在调整的长河中发现当数据量多的时候Request.InputStream的Position居然是在终结地方,如下图

金沙网址 1

从上海体育地方能够看出,因为Request.InputStream明确是被读过了为此Position会在收尾地点,一般Positon都是0。所以取得body中的参数一向为空,知道原委后在读取流在此之前把Position设置为0就足以了

var stream = HttpContext.Current.Request.InputStream;
                    stream.Position = 0;
                    using (var streamReader = new StreamReader(stream, Encoding.UTF8))
                    {
                        requestData = streamReader.ReadToEndAsync().Result;
                        requestData = ("appKey" + appKey + requestData + "timestamp" + timestamp).ToUpper();
                        stream.Position = 0;
                    }

  

但怎么Request.InputStream的Length的值在大约在1956左右的时候Position会在收尾地点,还不明白始末,希望有英雄指教!

 

Request.InputStream
读取输入流为空的来由管理,
后天在手提式有线电话机App测量试验接口的时候发掘四个经过POST格局的接口
获取body中的参数平昔为空,可是…

相关文章