最近遇到了一个特别奇怪的接口,接口的传值只要传递一个String字符串,而非传统形式中的Map<String,String>,接口样式如下:
尝试了很多方法都不行,困扰了我好久,写接口的人也早就离职了,公司里没人能帮我,最后我冥思苦想了一周后,终于解决了这个问题,先说结论:
结论:Retrofit中可以通过传入RequestBody的方式,自定义post中传递的值,这样不管是String类型,还是Map<String,String>类型,都可以自定义的去传递了
下面是问题解决方法:
1.先编写api
@POST Call<ResponseBody>text(@Url String url,@HeaderMap Map<String,String> headermap,@Body RequestBody body);
2.编写网络请求数据
API api = RetrofitManager.getRetrofit().create(API.class);
Map<String, String> head = new HashMap<>();//请求头
head.put("accept", "application/json"