asp.net mvc获取http body中的json

jiezi316 2016-12-13 06:47:25
今天遇到一个对方直接post 一共json对象字符串过来的场景。
按照以前的旧方案方法可以直接在request.inputstream里面读取,然后反序列化即可。(当然估计ASP.NET MVC应该有更好的方法)

但现在遇到个问题。如果对方mime类型设置为application/json,那么我们在后端的request.inputstream就读取不到任何数据。如果mime类型为text/json就可以读取到全部内容。

是不是asp.net mvc对于mime为applicaton/json有什么特殊的处理导致在某个环境已经读取了http boyd流。
(因为request.inputstram这个只能读取一次,读取后就读取不到数据了)

请各位大侠告知,谢谢。
...全文
1578 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangguosheng 2017-06-02
  • 打赏
  • 举报
回复
因为mvc已经读取过一次inputstream了。在读也读不到了。要想不被mvc读。去掉action的参数,自己从request.inputstream中取。
睿泽科技 2017-05-25
  • 打赏
  • 举报
回复
request.InputStream.Position = 0; request.InputStream; 就可以了
闭包客 2016-12-14
  • 打赏
  • 举报
回复
MVC 可能有自动反序列化到 Model 这个动作。 估计在 action 的参数加一个和 json 结构匹配的形参就可以读到。
jiezi316 2016-12-14
  • 打赏
  • 举报
回复
不是2楼说的东西。2楼的方案和我的方案一样的。 现在的问题是当mime为application/json时从输入流里面获取不到任何数据。无论你用request.instream还是request.readbinaryxxx什么的,都一样。 昨天我已经解决了。估计mvc框架已经读取了一次request输入流,所以获取不到了。再次获取前,先将流的当前读取位置seek到起始位置就可以正确读取了
EnForGrass 2016-12-14
  • 打赏
  • 举报
回复
http://www.cnblogs.com/vingi/articles/2767912.html

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧