Я использую Retrofit для выполнения вызова API. Когда я обрабатываю ответ, получаю сообщение об ошибке, я пытаюсь получить данные этого вызова API на этой странице https://my -json-server.typicode.com / jayraic / demo / db
Попытка вызвать метод интерфейса 'java.lang.Object java.util.List.get (int)' для ссылки на пустой объект
Модифицированный базовый вызов
public class NBADataFactory {
private final static String BASE_URL = "https://my-json-server.typicode.com/jayraic/demo/";
public final static String DB_URL = "https://my-json-server.typicode.com/jayraic/demo/db";
public static NBAService create() {
Retrofit retrofit = new Retrofit.Builder().baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
return retrofit.create(NBAService.class);
}
Модифицированный вызов
private void fetchTeamList() {
NBAApplication nbaApplication = NBAApplication.create(context);
NBAService nbaService = nbaApplication.getNbaService();
Disposable disposable = nbaService.fetchTeam(NBADataFactory.DB_URL)
.subscribeOn(nbaApplication.subscribeScheduler())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<NBAResponse>() {
@Override
public void accept(NBAResponse nbaResponse) {
changeTeamDataSet(nbaResponse.getTeamList());
teamProgress.set(View.GONE);
teamLabel.set(View.GONE);
teamRecycler.set(View.VISIBLE);
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) {
messageLabel.set(context.getString(R.string.error_loading_people));
teamProgress.set(View.GONE);
teamLabel.set(View.VISIBLE);
teamRecycler.set(View.GONE);
}
});
compositeDisposable.add(disposable);
}
private void changeTeamDataSet(List<Team> teams) {
teamList.addAll(teams);
setChanged();
notifyObservers();
}
Модель ответа
public class NBAResponse {
List<Team> teamList;
public List<Team> getTeamList() {
return teamList;
}
}
Модель команды
public class Team implements Serializable {
@SerializedName("id") public String id;
@SerializedName("full_name") public String full_name;
@SerializedName("win") public String win;
@SerializedName("losses") public String losses;
@SerializedName("players") public List<Player> players;
}
Я пробую это и застрял в этой проблеме, любая помощь или направление на правильный путь будут оценены.