Nano Hash - криптовалюты, майнинг, программирование

Как получить код состояния https в Retrofit RxJava Android?

Раньше я всегда использовал модификацию для загрузки данных. Это очень легко обработать или получить код состояния ответа.

Но теперь я хочу использовать Retrofit с RxJava, но я не знаю, как обрабатывать или получать код состояния https ответа в методе onNext.

progressDialog.show();

Observable<ResponseData> observable = apiService.getData();
compositeDisposable.add(observable
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribeWith(new DisposableObserver<ResponseData>() {
            @Override
            public void onNext(ResponseData responseData) {
                Log.e("pppp", "onNext: " + responseData.toString());
            }

            @Override
            public void onError(Throwable e) {
                progressDialog.dismiss();
                Log.e("pppp", "onError: " + e.getMessage());
            }

            @Override
            public void onComplete() {
                progressDialog.dismiss();
                Log.e("pppp", "onComplete");
            }
        })
);

Все, пожалуйста, помогите мне решить эту проблему.
Спасибо!

11.05.2018


Ответы:


1

Вы должны обернуть свои ResponseData внутри Response как

Observable<Response<ResponseData>> observable = apiService.getData(); 

Затем внутри onNext

@Override 
public void onNext(Resposne<ResponseData> response) {
   int statusCode = response.code();
}

и за ошибку

@Override 
public void onError(Throwable e) {
    ((HttpException) e).code();
}
11.05.2018
  • Вы уверены, что нет адаптера/метода/объекта, способного получить это вместо того, чтобы обернуть объект ResponseData в объект Response? 10.12.2020

  • 2

    responseData.code дает вам код состояния

       int statusCode = responseData.code();
    
    11.05.2018
  • responseData - это мой модельный класс, сэр. 11.05.2018

  • 3

    для получения статуса

      Observable<ResponseData> observable = apiService.getData(); 
        compositeDisposable.add(observable 
                .subscribeOn(Schedulers.io()) 
                .observeOn(AndroidSchedulers.mainThread()) 
                .subscribeWith(new DisposableObserver<ResponseData>() { 
                    @Override 
                    public void onNext(ResponseData responseData) {
                        int statusCode = responseData.code();
                        // here you get your status code
                        Log.e("statusCode ", "onNext: " + statusCode );
                    } 
    
                    @Override 
                    public void onError(Throwable e) {
                        progressDialog.dismiss(); 
                        Log.e("pppp", "onError: " + e.getMessage());
                    } 
    
                    @Override 
                    public void onComplete() { 
                        progressDialog.dismiss(); 
                        Log.e("pppp", "onComplete");
                    } 
                }) 
        ); 
    
    11.05.2018
  • Сэр, я не могу его получить, потому что ResponseData — это мой модельный класс. 11.05.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..