Android改造得到json对象

时间:2014-08-22 09:35:10

标签: android web-services retrofit

我正在使用改造库来获取一个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作为最后一个参数,而不是两者。

我应该怎样做才能克服这个错误?

1 个答案:

答案 0 :(得分:0)

根据错误,此接口定义错误。

interface Login {
    @POST("/testapp/")
    Contributor1 mu(@Body User user,Callback<Contributor1> callBack);

}

您应该将其修改为

interface Login {
    @POST("/testapp/")
    Contributor1 mu(@Body User user);

}

由于现在它没有回调,你应该可以同步调用它。