Retrofit post json 通过@Body 无法传递参数给后台

  • Post author:
  • Post category:其他


记录一下:Retrofit post json 通过@Body 无法传递参数给后
方式一:
-------------------------------------------------------
@POST("xxxx/getBindHouseInfo")
Observable<BaseResponse<EhecdHouse>> queryHouses(@Body RequestBody body);
-------------------------------------------------------

HashMap<String, Object> map = new HashMap<>();
map.put("contactId", User.getInstance().getId());
map.put("loginName", User.getInstance().getLoginName());
RequestBody requestBody = RequestBody.create(MediaType.parse("Content-Type, application/json"), new JSONObject(map).toString());

mModel.queryHouses(requestBody)
        .compose(RxScheduler.Obs_io_main()).....
此种方式无法post过去,必须在拦截器处添加header或者在注解出多加@Headers("Content-Type: application/json")

方式二:

——————————————————-

@POST(“xxxx/getBindHouseInfo”)

Observable<BaseResponse<EhecdHouse>> queryHouses(@Body Param body);//Param 自定义的bean,包含参数

——————————————————-

自定义的bean中包含参数,直接post皆可以。



版权声明:本文为lifs419原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。