解决ASP.NET MVC 接受Request Payload参数问题
今天与跟前端小伙伴对接口,发现微信小程序的POST带参数传值HttpContent.Request[]接收不到参数。
拿小程序官网文档举例
wx.request({ url: 'Text/Text', //仅为示例,并非真实的接口地址 data: { x: '我是' , y: '参数' }, header: { 'content-type': 'application/json' }, success: function(res) { console.log(res.data) } })
这样访问接口压根收不到参数。解决办法有两种一种修改“application/json”为“application/x-www-form-urlencoded”这样修改后参数会变成x='我是'&y=’参数‘,这样在后台接受的话需要HttpContent.Request["x"]和HttpContent.Request["y"]来接受,但是这不是我想要的,我想直接用一个对象反序列化接受,这样一个个写少了还好,多了能把我累死。所以我找了其他方法就有了
string str = new System.IO.StreamReader(base.Request.InputStream).ReadToEnd();
这样str取得的参数就是“{x:'我是',y:'参数'}”了