method does not override or implement a method from a supertype – for Override

The problem is what the error message is saying: “the method does not override or implement a method from a supertype”. You annotated both methods with the Override annotation, however, no method with the same signature (i.e. the parameters) can be found in the supertype (JsonHttpResponseHandler).

If you take a look at the documentation of JsonHttpResponseHandler, you can see all the available onSuccess(...) and onFailure(...) methods.

Here is the working version of your code (note that changes in the method signatures):

client.get(QUERY_URL + urlString,
    new JsonHttpResponseHandler() {

        @Override
        public void onSuccess(int statusCode, org.apache.http.Header[] headers, JSONObject jsonObject) {
            // Display a "Toast" message
            // to announce your success
            Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show();

            // 8. For now, just log results
            Log.d("omg android", jsonObject.toString());
        }

        @Override
        public void onFailure(int statusCode, org.apache.http.Header[] headers, Throwable throwable, JSONObject error) {
            // Display a "Toast" message
            // to announce the failure
            Toast.makeText(getApplicationContext(), "Error: " + statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show();

            // Log error message
            // to help solve any problems
            Log.e("omg android", statusCode + " " + throwable.getMessage());
        }
    });

Note that starting from Android 6.0 (API level 23) the Apache library (org.apache.http.*) is not available anymore. If you want to continue using that, see Behavior Changes for more information.

Some personal opinion: I wouldn’t recommend using the Asynchronous HTTP Library as it’s built on top of the obsolete (and from API level 23, removed) Apache HttpClient, which has poor performance compared to HttpURLConnection. Quote from the Android developers about HttpURLConnection:

This API is more efficient because it reduces network use through transparent compression and response caching, and minimizes power consumption.

Leave a Comment