我正在使用改造库来获取一个Web服务,该服务期望请求为json并以json的形式给出响应。
public class GitHubClient extends Activity{
private static final String API_URL = "http://10.0.0.32/test";
static class Contributor {
String login;
int contributions;
}
public static class Array {
public String id;
public String name;
}
class Contributor1 {
public Array array;
}
interface Login {
@POST("/testapp/")
Contributor1 mu(@Body User user,Callback<Contributor1> callBack);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new myasyncclass().execute();
}
public class User {
public String mail;
public String password;
}
public class myasyncclass extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
// Create a very simple REST adapter which points the GitHub API endpoint.
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer(API_URL)
.build();
Login login = restAdapter.create(Login.class);
User user=new User();
user.mail="ttete";
user.password="tett";
Contributor1 contributors = login.mu(user,new Callback<Contributor1>() {
@Override
public void failure(RetrofitError error) {
System.out.println("failure, error: " + error);
}
@Override
public void success(Contributor1 result, Response arg1) {
System.out.println("success, result: " + result);
}
});
return null;
}
}
}
这是我的全班。但是我收到以下错误
引起:java.lang.IllegalArgumentException:方法mu可能只有返回类型或Callback作为最后一个参数,而不是两者。
我应该怎样做才能克服这个错误?
答案 0 :(得分:0)
根据错误,此接口定义错误。
interface Login {
@POST("/testapp/")
Contributor1 mu(@Body User user,Callback<Contributor1> callBack);
}
您应该将其修改为
interface Login {
@POST("/testapp/")
Contributor1 mu(@Body User user);
}
由于现在它没有回调,你应该可以同步调用它。