7

我正在为我的后端通信使用改造,在它下面是我改造调用的片段:

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 中的每个值。我的响应来自服务器是正确的,但为什么失败()被调用?

请帮忙!

提前致谢。

4

1 回答 1

10

可能改造会引发调用失败方法的异常。利用:

retrofitError.getCause()

或进行一些调试。您使用 CreateEventResponse 注册回调,因此当 body 为 null 时,您可能会捕获解析异常。

于 2014-04-16T11:09:12.537 回答