Android Studio - pobieranie API walut z NBP

0

Witam, chciałbym nauczyć się korzystać z API dlatego postanowiłem napisać prosty kalkulator walut, ale szukając informacji w internecie nie natrafiłem na nic pomocnego. Macie jakiś pomysł, poradnik czy kurs jak pobrać waluty z tego API: http://api.nbp.pl/api/exchangerates/tables/A/ ?
Z góry dziękuje za wszelką pomoc! :)

2

Najprościej będzie pobrać zawartość API jako string. Potrzebna będzie biblioteka, np. OkHttp

Request request = new Request.Builder()
        .url("http://api.nbp.pl/api/exchangerates/tables/A")
        .build();

Response response = new OkHttpClient().newCall(request).execute();
String content = response.body().string();

Mając takiego stringa możesz go przekonwertować sobie na Document xml i przelatywać po node'ach, chociaż przeszukiwanie XMLa jest katorgą, więc polecam zamiast tego pobrać dane z API w formacie json: http://api.nbp.pl/api/exchangerates/tables/A?format=json i pobrany string sobie przekonwertować jakąś biblioteką (Gson, Jackson) do obiektu reprezentującego klasy reprezentującej dane z API (piszesz klasę 1 do 1 jak to, co jest zwracane przez API).

Tworząc aplikację na androida musisz wziąć pod uwagę, że nie można w głównym wątku aplikacji pobierać nic z internetu, więc użyj https://developer.android.com/reference/android/os/AsyncTask aby zrobić to w tle.

1
Grzyboo napisał(a):

Tworząc aplikację na androida musisz wziąć pod uwagę, że nie można w głównym wątku aplikacji pobierać nic z internetu, więc użyj https://developer.android.com/reference/android/os/AsyncTask aby zrobić to w tle.

AsyncTask na szczęście jest już oficjalnie niezalecany - https://android-review.googlesource.com/c/platform/frameworks/base/+/1156409. Tym bardziej nie ma sensu z niego korzystać, jeśli wrzucasz OkHttp, który ma enqueue.

1 użytkowników online, w tym zalogowanych: 0, gości: 1