Retrofit在body里面传不为json的数据
Retrofit传输Json数据方法
@POST("robot/send")
SendTextResponse sendMsg(@Query("access_token") String accessToken, @Body SendTextRequest request);
利用@Body注解就可以了,Retrofit会用FastJson来进行序列化。
但是有些时候需要传输加密的内容,例如:
@Body String request
这样传输的话还是会把String 字符串给json转化一下,就导致数据有误。
解决办法
import okhttp3.RequestBody;
@POST("openapi/api/xxx")
Response dispatch(@HeaderMap Map<String, String> headerMap, @Body RequestBody request)
调用方:
api.dispatch(headerMap, RequestBody.create(MediaType.get("application/json"), request));
就可以完美解决了!!!
Retrofit 里面的序列化方式有很多种,具体的源码还没有来得及看,如果有了解的小伙伴可以评论指出!