Llamadas asincrónicas Okhttp de Android

Estoy intentando utilizar la biblioteca Okhttp para conectar mi aplicación de Android a mi servidor a través de la API.

Mi llamada a la API se realiza con un clic de botón y recibo lo siguienteandroid.os.NetworkOnMainThreadException. Entiendo que esto se debe al hecho de que estoy intentando llamadas de red en el hilo principal, pero también estoy luchando por encontrar una solución limpia en Android sobre cómo hacer que este código use otro hilo (llamadas asíncronas).

@Override
public void onClick(View v) {
    switch (v.getId()){
        //if login button is clicked
        case R.id.btLogin:
            try {
                String getResponse = doGetRequest("http://myurl/api/");
            } catch (IOException e) {
                e.printStackTrace();
            }
            break;
    }
}

String doGetRequest(String url) throws IOException{
    Request request = new Request.Builder()
            .url(url)
            .build();

    Response response = client.newCall(request).execute();
    return response.body().string();

}

Arriba está mi código, y la excepción se está lanzando en la línea

Response response = client.newCall(request).execute();

También he leído que Okhhtp admite solicitudes asíncronas, pero realmente no puedo encontrar una solución limpia para Android, ya que la mayoría parece usar una nueva clase que usaAsyncTask <>??

Cualquier ayuda o sugerencia es muy apreciada, gracias ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta