微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 即使标题状态代码为200,Retrofit也会调用failure()方法

我正在使用改造进行后端通信,并在其下方使用我的改装电话的片段:
serverObject.createEvent(Utils.getAuthHeader(),params,new Callback<CreateEventResponse>() {
        @Override
        public void success(CreateEventResponse outputObj,retrofit.client.Response response) {

            Log.d(TAG,outputObj.getTitle() + " is successfully created.");
            setResult(Activity.RESULT_OK);
            finish();
        }

        @Override
        public void failure(RetrofitError retrofitError) {

            //Header status code
            Log.e("failure",String.valueOf(retrofitError.getResponse().getStatus()));
            Log.e("failure",String.valueOf(retrofitError.getResponse().getBody()));

        }
    });

上面的代码在Logcat中打印出来:

04-16 16:26:11.751  25131-25131/com.android.myapp.app E/failure﹕ 200
04-16 16:26:11.751  25131-25131/com.android.myapp.app E/failure﹕ null

这有可能吗?

任何人都可以帮助为什么会发生这种情况.

我也设置了setLogLevel(RestAdapter.LogLevel.FULL);所以我可以看到我的logcat中的每个值.
我的响应是从服务器正确的,但为什么失败()被调用

请帮忙!

提前致谢.

解决方法

可能改装会引发一个异常调用失败方法.使用:
retrofitError.getCause()

或者做一些调试.您使用CreateEventResponse注册回调,因此当body为null时,您可能已捕获解析异常.

原文地址:https://www.jb51.cc/android/315313.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐