android - onNext 未调用 Retrofit 和 rxAndroid

标签 android retrofit rx-java rx-android

我正在尝试使用 retrofit 和 rxAndroid 从网络中获取值,但没有调用 onNext。 在这里,我的类(class):

public class ForumService {

private static final String FORUM_SERVER_URL = "http://192.168.1.104:8080/curso-fullstack/symfony/web";
private ForumApi mForumApi;


public ForumService(){
    RequestInterceptor requestInterceptor = new RequestInterceptor() {
        @Override
        public void intercept(RequestFacade request) {
            request.addHeader("Accept", "application/json");
        }
    };

    RestAdapter restAdapter = new RestAdapter.Builder()
            .setEndpoint(FORUM_SERVER_URL)
            .setRequestInterceptor(requestInterceptor)
            .setLogLevel(RestAdapter.LogLevel.FULL)
            .build();

    mForumApi = restAdapter.create(ForumApi.class);

}

public ForumApi getmForumApi() {
    return mForumApi;
}

public interface ForumApi{

    @GET("/video/lasts_videos")
    public Observable<List<Data>> getVideos();

    /*@GET("/posts/{id}")
    public Observable<Post>
    getPost(@Path("id") int postId);

    @GET("/comments")
    public Observable<List<Comment>>
    getComments(@Query("postId") int postId);

    @POST("/posts")
    public Observable<Post> postPost(Post post);*/
}

public class ListPresenter {

ListActivity mView;
ForumService mForum;

public ListPresenter(ListActivity mView, ForumService mForum) {
    this.mView = mView;
    this.mForum = mForum;
}

public void loadPosts() {

    mForum.getmForumApi()
            .getVideos()
            .subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<List<Data>>() {
                @Override
                public void onCompleted() {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onNext(List<Data> posts) {

                    mView.displayPosts(posts);
                }
            });
}

然后,我从我的 Activity 中执行方法 loadPosts(),以填充列表并显示在 ListView 中。 如果我查看 android 日志,我可以看到 retrofit 如何向我显示找到的结果,但出于任何原因永远不会调用 onNext。

enter image description here

最佳答案

来自评论中的讨论:

onNext 不会被调用,因为 JSON 反序列化中存在问题。 onError 被调用。

关于android - onNext 未调用 Retrofit 和 rxAndroid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45264781/

相关文章:

java - 简化交错的 flatMap Observables 链

android 备份服务与第三方服务提供商的集成

android - onResume 之后的 Activity "freezed"

java - 确定某些字体在android中是否可用?

android - 如何使用 RxJava2 取消通话?

android - Retrofit返回错误307,在android中调用web服务

java - RxJava 在连接映射后更改线程

java - android xml 意外的命名空间前缀

flutter - retrofit_generator :retrofit crash after upgrade to Null Safe version on Flutter

java - 如何将 rxJava2 的 Observable 转换为 Completable?