首页 > 代码库 > Web Api 获取post json数据

Web Api 获取post json数据

   这周在做一个webApi的模拟后台。遇到些问题。和大家分享一下,以前没有搞过webapi。所以不是太懂。

   当我发post请求的json数据过来的时候,如果我用context.Request .Form去收的时候会发现,一小半的json数据跑到了Key里面,其他数据在form[0]中,很奇怪。后来恍然大悟我发送的又不是表单干嘛用表单去接收,然后去用HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length);直接读取流然后再转码。转码当然要用你当时发过来的编码去转,不然会乱码。发现可以获取整个json。但是又有问题了,我webApi中post上来的都会进入 public void Post([FromBody]string value)这个方法中,在这个方法中用InputStream.Read读取不到,原来是因为[FromBody]string value 这边已经读取过了。如果写成[FromBody]Test test 的话就会把表单中的值写入到这个定义好的类中。所以webapi中帮我们已经封装了获取表单中的数据放入类中。但是咱这边不是表单,是json,所以只要把[FromBody]去掉就可以了,直接调用post(),然后在函数中就可以读取流数据了。