Не удалось получить ответ от Rxjava Retrofit

Я пытаюсь получить ответ, но не получаю его. Также я не получаю никаких ошибок. что я делаю не так? сделал POJO через jsonscema2Pojo.org

может быть, как я звоню

 @GET("16126940.json")
 Observable <NewsFeed> getFinalData(); 

в сервисе это неправильно

я имею дело с ниже JSON

{
  "by": "Doubleguitars",
  "descendants": 70,
  "id": 16126940,
  "kids": [
   16131536,
   16131286,
   16132328,
   16132016,
   16132256,
   16131390,
   16132386,
   16132049,
   16132088,
   16132206,
   16132895,
   16131438,
   16132082,
   16132859,
   16131517,
   16131474,
   16133112
 ],
  "score": 173,
  "time": 1515698746,
  "title": "The Making of Apple’s Emoji",
  "type": "story",
  "url": "https://medium.com/@agzmn/the-making-of-apples-emoji-how-
  designing-these-tiny-icons-changed-my-life-16317250a9ee"
 }

мой код в деятельности

 public void loadNextDataFromApi(int itemCount) {
    mService = ApiUtils.getSOService2();
}

public void loadAnswers(){
   mService.getFinalData().subscribeOn(Schedulers.io()).
  observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<NewsFeed>() {
                    @Override
                    public void onCompleted() { }
                    @Override
                    public void onError(Throwable e) {   }
                    @Override
                    public void onNext(NewsFeed response) {
                        Log.e("response", "response------------------>" + 
                       response.toString());
                    }
                });
}

Модернизированный клиент

public class RetrofitClient {

private static Retrofit retrofit = null;

public static Retrofit getClient(String baseUrl) {
    if (retrofit==null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
        return retrofit;
}
}

мой сервис

public interface SOService {
    @GET("16126940.json")
    Observable <NewsFeed> getFinalData();
}

в утилите я сохранил вызов метода

 public static final String HTTP_JSON_URL = "https://hackernews.firebaseio.com/v0/item/";
 public static SOService getSOService2() {
    return RetrofitClient.getClient(HTTP_JSON_URL).create(SOService.class); 
}

1 ответ

Может быть, ваши ошибки игнорируются, как я вижу, ваша ошибка onError пуста. когда вы нажимаете сервис, используя RxJava и Retrofit. результат будет успешным или ошибочным. поэтому ошибка onError не должна быть пустой. поставить e.printStackTrace() как минимум. а также убедитесь, что вы вызвали метод loadAnswers(). В предоставленном вами коде этот метод не называется..

@Override
public void onError(Throwable e) {   
 e.printStackTrace()
}

Я думаю, вам нужно вызвать метод загрузки ответа в методе ниже.

 public void loadNextDataFromApi(int itemCount) {
    mService = ApiUtils.getSOService2();
    loadAnswers();
} 
Другие вопросы по тегам