android端使用Retrofit接收json参数与postman的一点区别

   在实践中遇到的一个问题,记录一下,方便回顾。

   后台使用springBoot做的,在controller中接收前台参数与anndroid的时候有一些区别。 调试过程花了我很大一部分时间但是仍然没有解决。

   他们的区别是这样的:

     android端使用Retrofit接收json参数与postman的一点区别

   在则会个接口中,使用postman传递参数,contentType为  application/json的情况下,可以自动封装成实体。  传递的参数是直接以拆包后的属性为参数。

   postman参数截图:

android端使用Retrofit接收json参数与postman的一点区别

   参数误传并不会报错,它只会解析实体中具有的属性。  此外注意复合数据(如一个实体中嵌套实体,那么它的写法为:

android端使用Retrofit接收json参数与postman的一点区别

   在这种形势下,当我在后台使用了@RequestBody时候,是取不到值的。  我觉得@RequestBody应该是以json的形式去取,但是我也尝试过用Json的形式,但是都失败了,可能是方式没对。

  以上是使用postman(或者说应用)的情况,如果是网页表单提交的话,则可以直接用@RequestParam,也可以使用@RequestBody。

   下面是我在android中使用refrofit的与后台交互的情况:(非常郁闷的是,我测试的时候直接获取输入流打印也是空,获取属性键值对也是空。还好在网上看到有朋友遇到过类似情况)。

   android端使用Retrofit接收json参数与postman的一点区别

android端使用Retrofit接收json参数与postman的一点区别

      当使用了Retrofit的@Body的时候,springboot必须使用@RequestBody处理。