Android Okhttp asynchrone Aufrufe

Ich bin versucht, die Okhttp-Bibliothek eine Verbindung zu meinem android-app auf meinem server via API.

Mein api-Aufruf geschieht auf eine Schaltfläche klicken und ich erhalte die folgende android.os.NetworkOnMainThreadException. Ich verstehe, dass dies ist aufgrund der Tatsache ich bin versucht network Anrufe auf dem Haupt-thread, aber ich bin auch kämpfen, um zu finden eine saubere Lösung, die auf android -, wie stellen Sie diesen code verwenden anderen thread (asynchrone Aufrufe).

@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();

}

Oben ist mein code, und die exception wird geworfen auf der Linie

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

Ive auch gelesen, dass Okhhtp unterstützt Asynchrone Anfragen, aber ich kann wirklich nicht finden, eine saubere Lösung für android, wie die meisten scheinen eine neue Klasse, die verwendet AsyncTask<>??

Jede Hilfe oder Anregungen geschätzt, danke...

InformationsquelleAutor jjharrison | 2016-01-23

Schreibe einen Kommentar