Android retrofit2.0 raw请求

最近在使用retrofit的时候遇见一个问题,当我本地使用postman进行请求时可以获取到返回结果,但是当我使用retrofit通过post方式请求时却返回500的错误。
Android retrofit2.0 raw请求_第1张图片
我们平时使用retrofit进行请求一般都是以表单的形式进行,嗯,当然现在越来越多的以表单的形式进行请求数据了,但是为什么在postman上同样的post请求,在android上却得不到正确的结果?注意上图postman的post请求中有form-data和raw两种形式,这就是问题的原因所在,那么raw方式与form方式进行请求有什么不同?raw方式使用的是纯字符串的数据上传方式,所以在POST之前,可能需要手工的把一些JSON格式的数据转换成字符串的(加两单引号)
Form-data的方式就是key-value的提交,数据其实是分割的。

解决方式:@Body +Entity

Android retrofit2.0 raw请求_第2张图片
Entity中不需要重写toString方法
这里写图片描述

这里再补充一点:
postman的那张截图可以看出来,返回值并不是Gson格式的,如果你也遇到使用retrofit时返回就是个string 可以添加scalars转换器,可以查看说明。
https://futurestud.io/tutorials/retrofit-2-how-to-send-plain-text-request-body

这里写图片描述

你可能感兴趣的:(Android)