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! :)
Android Studio - pobieranie API walut z NBP
- Rejestracja: dni
- Ostatnio: dni
- Postów: 27
- Rejestracja: dni
- Ostatnio: dni
- Postów: 206
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Kraków
- Postów: 834
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.