Android network API request I often use a similar scheme work with an API project. Can it be made easier, or is there a standard approach?

This class creates an API request:

public class ApiRequestCreator {

     private static String TEST_API_REQUEST = "http://jsonplaceholder.typicode.com/posts";

     public static Request createTestApiRequest(){
         return new Request.Builder()
                .url(TEST_API_REQUEST)
                .build();
     }
}


This class execute the request:

 public class ApiRequestExecutor {

     private final OkHttpClient client = new OkHttpClient();

     public void run(final Request request, final ApiMethodListener apiMethodListener) {

         new AsyncTask&lt;Void, Void, String&gt;() {

                @Override
                protected String doInBackground(Void ...voids) {
                try {
                     Response response = client.newCall(request).execute();
                     if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
                     return response.body().string();
                } catch (IOException e) {
                     e.printStackTrace();
                     return null;
                }
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                apiMethodListener.result(result);
            }

        }.execute();

    }
}


For all of this to start:

new ApiRequestExecutor().run(ApiRequestCreator.createTestApiRequest(), call_back_interface_here);
Your code looks good, but in my opinion AsyncTasks are good for single operations - it's not pleasant to make AsyncTask reusable. In my projects I use Ion to download some JSON data from API. This (and similar) library is prepared for making API calls, so it's easier and more ellegant to use for network requests.