我有一个类,它基本上是在线api的包装器(用于使用HttpClient,但注意到异步任务的好处/要求,并选择使用Retrofit进行)。移植到Retrofit后的问题是我没有任何想法如何正确地使Java类(Wrapper)与我的Activity交互。
我已经阅读了很多stackoverflow帖子,在改进的OnFinished事件中尝试了一个接口,在那里我将接口传递给方法,然后在接口中设置方法的变量。然后在我做的活动
Entries entries = new MyWrapper().SearchRequest(someParameter, new ApiCallback(){
void onSearchRequestFinished(Entries entries){
//here I use the entries
}
}
在包装器中它看起来像这样:
RequestBody postBodyObj = RequestBody.create(MediaType.parse("text/plain"), postBody);
Call<Entries> call = mInterface.searchRequest(postBodyObj);
call.enqueue(new Callback<Entries>() {
@Override
public void onResponse(Call<Entries> call, retrofit2.Response<Entries> response) {
Entries entries = response.body();
callback.onSearchRequestFinished(entries);
}
@Override
public void onFailure(Call<Entries> call, Throwable t) {
}
});
这个问题是它似乎总是返回null /未设置参数。如果我检查甚至记录包装类中的条目(在RetroFit的OnFinished类中),它不为空。
也许我完全错了,或者我只需要更好地设计我的互动(在活动中做webrequests?)
谢谢!