The problem is what the error message says: "the method does not override or does not implement the method from the supertype." You annotated both methods using the Override annotation , however, no method with the same signature (i.e. parameters) can be found in the supertype ( JsonHttpResponseHandler ).
If you look at the JsonHttpResponseHandler documentation, you will see all the available methods onSuccess(...) and onFailure(...) .
Here is the working version of your code (note that there are 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()); } });
Please note that starting with Android 6.0 (API level 23), the Apache library (org.apache.http. *) Is no longer available. If you want to continue using it, see "Behavioral Changes" for more information.
Some personal opinion: I would not recommend using an asynchronous HTTP library, since it was built on top of the obsolete (and from API level 23, removed) Apache HttpClient , which has poor performance compared to HttpURLConnection . Quote from Android developers about HttpURLConnection :
This API is more efficient because it reduces network usage due to transparent compression and response caching and minimizes power consumption.