Android Studio - pobieranie API walut z NBP

Android Studio - pobieranie API walut z NBP
VI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
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! :)

Grzyboo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 206
2

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

Kopiuj
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.

Michał Sikora
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 834
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.