Chamadas assíncronas do Android Okhttp

Estou tentando usar a biblioteca Okhttp para conectar meu aplicativo Android ao meu servidor via API.

Minha chamada da API está acontecendo com um clique no botão e estou recebendo o seguinteandroid.os.NetworkOnMainThreadException. Entendo que isso se deve ao fato de eu estar tentando fazer chamadas de rede no thread principal, mas também estou lutando para encontrar uma solução limpa no android sobre como fazer esse código usar outro thread (chamadas assí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();

}

Acima está o meu código e a exceção está sendo lançada na linha

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

Também li que o Okhhtp suporta solicitações assíncronas, mas realmente não consigo encontrar uma solução limpa para o Android, pois a maioria parece usar uma nova classe que usaAsyncTask <>??

Qualquer ajuda ou sugestão é muito apreciada, obrigado ...

questionAnswers(1)

yourAnswerToTheQuestion