2015-11-29 20 views
8

İsteğim, POJO veya JSON tarafından açıklanan hata için JSON'u almalı (geçersiz istek alanları, sunucu sorunları vb. Olabilir).Güçlendirme 2'deki hatalar 2 RX

Ancak abone aboneliği bana sadece atılabilir verir. Bir ağ hatası, http kodu nedir ve hata ile JSON'u nasıl bulabilirim? Response parçası

private class ProjectListSubscriber extends Subscriber<ProjectListResponse> { 

    @Override 
    public void onCompleted() { 
    } 

    @Override 
    public void onError(Throwable e) { 
     //is that a network? http code? convert json to error POJO? 
    } 

    @Override 
    public void onNext(ProjectListResponse projectListResponse) { 
     updateProjectList(projectListResponse.getProjectList()); 
    } 
} 

cevap

10

Eğer RxJava kullandığınıza göre, onError hatasını ilgili ağ hataları ve uç noktaları durumunda denir bulunmaktadır. çek doğruysa throwable HttpException

public void onError(Throwable e) { 
    if (e instanceof HttpException) { 

bir örneği olup olmadığını hata durumda, isteğiniz bir hata var, kontrol edildi. Atılabilir HttpException için döküm ve erişim üyeler. Örneğin.

((HttpException) e).response().errorBody() 

onay false ise

o zaman bir şebekeyi ilgili hata var.

+0

Rx'de Response nesnesini nasıl alabilirim? – DmitryBorodin

+0

Cevabımı düzenledim – Blackbelt

+0

Teşekkür ederim. Sadece kontrol ettim - 200'den fazla olmayan herhangi bir kod için onError callen. Sadece ağ hataları değil. – DmitryBorodin