Retrofit在body里面传不为json的数据

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 里面的序列化方式有很多种,具体的源码还没有来得及看,如果有了解的小伙伴可以评论指出!

猜你喜欢

转载自blog.csdn.net/zgz15515397650/article/details/128151185