【问题标题】:onSuccess(int, Header[], JSONObject) was not overriden, but callback was receivedonSuccess(int, Header[], JSONObject) 没有被覆盖,但是收到了回调
【发布时间】:2016-01-13 14:32:54
【问题描述】:

我正在使用android-async-http,并覆盖所有onSuccessonFailure 方法,但我得到了错误: onSuccess(int, Header[], JSONObject) was not overriden, but callback was received

cz.msebera.android.httpclient.client.HttpResponseException: Not Found

我只是想知道我真的重写了这个方法。 我也得到了日志:onSuccess JSONObject:{"error":null,"success":false}

  public static void querySecurityCode(String username) {
        RequestParams params = new RequestParams();
        params.put("username", username);
        VStarRestClient.getClient().setEnableRedirects(true);
        VStarRestClient.post(GET_SECURITY_CODE_URL, params, new JsonHttpResponseHandler(){
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                super.onSuccess(statusCode, headers, response);
                Log.i("ws", "---->>onSuccess JSONObject:" + response);
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
                super.onSuccess(statusCode, headers, response);
                Log.i("ws", "---->>onSuccess JSONArray");
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, String responseString) {
                super.onSuccess(statusCode, headers, responseString);
                Log.i("ws", "---->>onSuccess responseString");
            }


            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                super.onFailure(statusCode, headers, responseString, throwable);
                Log.i("ws", "---->>onFailure:" + throwable.toString());
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
                super.onFailure(statusCode, headers, throwable, errorResponse);
                Log.i("ws", "---->>onFailure" + throwable.toString());
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONArray errorResponse) {
                super.onFailure(statusCode, headers, throwable, errorResponse);
                Log.i("ws", "---->>onFailure" + throwable.toString());
            }


        } );
    }

【问题讨论】:

    标签: android httphandler androidhttpclient asynchttpclient


    【解决方案1】:

    我遇到了同样的问题。我的 Rest API 返回 JSONObjects 数组,即 JSONArray。但我的代码尝试在 JSONObjects 中收集。

    解决方案:下面的代码对我来说工作正常。 JsonHttpResponseHandler 的 Override 方法

    public void onSuccess(int statusCode, Header[] headers, JSONArray response) { }

    而不是使用以下导致错误的方法覆盖: public void onSuccess(int statusCode, Header[] headers, JSONObject response) { }

    【讨论】:

      【解决方案2】:

      JsonHttpResponseHandler 有 2 个OnFailure 覆盖方法。尝试另一个

      【讨论】:

        【解决方案3】:

        试试这行

        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
        
        System.out.println("Received event with data: " + response);
        }
        

        【讨论】:

          【解决方案4】:

          你不应该调用super.onFailuresuper.onSuccess,当你没有覆盖它们时,警告来自超级方法。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-01-25
            • 2021-10-25
            • 1970-01-01
            • 2016-06-03
            • 1970-01-01
            相关资源
            最近更新 更多