我有一个类,它基本上是一个在线api的包装器(用于使用HttpClient,但注意到异步任务的好处/需求,并选择使用Retrofit)。自从将它移植到Retrofit之后,问题在于我不知道如何正确地使Java类(包装器)与我的活动交互。
我已经阅读了很多堆栈溢出帖子,在OnFinished事件的retrofit中使用了一个接口,其中我将接口传递给方法,然后在接口中设置方法的变量。然后在我做的活动中
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/参数没有设置。如果我检查甚至记录包装类中的条目(从OnFinished类到RetroFit),它将不为空。
也许我这样做完全错误,或者我只是需要更好地设计我的交互(活动中的网络请求吗?)
谢谢!
发布于 2016-11-29 19:29:18
想出了如何做到这一点,我将只使用奥托。
下面是一个很好的教程,如何使用它与改造:链接
https://stackoverflow.com/questions/40873057
复制相似问题