首页 新闻 会员 周边

关于.NET Web API InputStream接收不了数据的问题

0
悬赏园豆:50 [已解决问题] 解决于 2017-03-11 16:43

问题描述:1、网站向WebApi(以下简称Api) Post数据;

2、Api的过滤器先处理验证,通过HttpContext.Current.Request.InputStream获取网站Post过来的流数据;

3、问题出现了,如果我网站Post一个字节小于1000(大概是这个数目)的数据都没问题,如果我Post一个字节大于1000的就有问题了。当大于1000的时候,Api中获取的InputStream数据为空,但是如果去掉过滤器验证,直接跳到Api的控制器,这时Api的控制器就能获取到数据。详情见下图。

 

这是成功的Post请求:

这时,如果我再添加一点Post的数据量,问题就出现了,见下图:

 

问题就如上所述了,求大神指出问题所在,还有测试的网站和API是不再同一个项目里面的,所以不再同一个端口.

指尖上的艺术的主页 指尖上的艺术 | 初学一级 | 园豆:157
提问于:2017-03-11 14:13
< >
分享
最佳答案
1

试试在StreamReader读取之前,加上stream.Position = 0

收获园豆:50
dudu | 高人七级 |园豆:30979 | 2017-03-11 15:06

大神,困扰了一天的问题,解决了,请问为什么会出现这样的情况。

为什么过滤器里面的Stream不是从0开始的,是跟我里面的代码有关吗?

指尖上的艺术 | 园豆:157 (初学一级) | 2017-03-11 16:41

@指尖上的艺术: 只要StreamReader读过1次,stream.Position的值就不为0。

dudu | 园豆:30979 (高人七级) | 2017-03-11 17:09

@dudu: 我也遇到过这样问题

通过您的方法解决了 谢谢

智客工坊 | 园豆:1855 (小虾三级) | 2018-06-17 14:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册