2016-08-18 17 views
11

Retrofit 2.0'a yükseltmeye çalışıyorum ve android projemde RxJava'yı ekliyorum. Ben bir önbellekrxjava ile retrofit 2.0 istek URL'si nasıl alınır?

Observable<MyResponseObject> apiCall(@Body body); 

Ve RxJava çağrısında sqlite yanıt verileriyle bir API çağrısı yapmadan ve url almak isteyen ve onu ediyorum: Recommended 1.9 olarak

myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() { 
    @Override 
    public void onCompleted() { 

    } 

    @Override 
    public void onError(Throwable e) { 

    } 

    @Override 
    public void onNext(MyResponseObject myResponseObject) { 

    } 
}); 

, yapabiliriz başarı geri aramasında url olsun:

 @Override 
     public void success(MyResponseObject object, Response response) { 
      String url=response.getUrl(); 
      //save object data and url to sqlite 
     } 

Eğer RxJava kullanarak Recommended 2.0 ile bunu nasıl?

+0

Bu konuda herhangi bir başarı? Ben de bu – neteinstein

cevap

18

Güncelleme:

soruyu tekrar okuduktan sonra:

size API arayüzünü tanımlamak gerekir ham tepki erişimi istiyorsanız gibidir:

Observable<Response<MyResponseObject>> apiCall(@Body body); 

yerine:

Observable<MyResponseObject> apiCall(@Body body); 

Url'yi şu adresten alabilirsiniz:

Burada
response.raw().request().url() 

:
response Recommended
raw gelen yanıttır UrlHttpUrl olarak içeren OkHttp isteyin OkHttp
request gelen yanıt olmasıdır.

+4

için arıyorum retrofit1.9, ama retrofit2.0 ve rxjava içinde retrofit yanıt alamıyorum –

İlgili konular