java.lang.IllegalArgumentException: Multiple @Body method annotations found. (parameter #4)
for method RetrofitInterface.uploadLeaderData
找到多个@Body方法注解
由于retrofit请求数据的参数里面有多个@Body的注解的原因,
例如:
@POST("of****ata/up***ask")
Observable<ResultBeanNew> uploadLeaderData(@Body E****eBean bean,@Body Exa****Bean bean2);
解决方法一:
解决此方法使用HashMap解决
HashMap map=new HashMap();
map.put("user", user);
map.put("authorization", "12uh3u12huhcd2");
map.put("something", someobject);
@POST("auth/login")
Call<UserData> login(@Body HashMap map);
解决方法二(需要调整接口):
之前两个@Body的接口
@POST("auth/login")
Call<UserData> login(@Body String username, @Body String password);
新建类去包含需要字段:
public class LoginInformation {
String username;
String password;
}
使用一个@Body注解,把包含全部所需字段全部通过新的类LoginInformation 传递数据:
@POST("auth/login")
Call<UserData> login(@Body LoginInformation loginInformation);
参考:
android - error with more than one @Body field - retrofit2 beta3 - Stack Overflow