Retrofit中解决网络请求中post请求中只传递一个String字符串而非Map<String,String>形式的办法

最近遇到了一个特别奇怪的接口,接口的传值只要传递一个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"

猜你喜欢

转载自blog.csdn.net/u010802275/article/details/126466193