2016-08-18 6 views
11

मैं रेट्रोफिट 2.0 में अपग्रेड करने और अपने एंड्रॉइड प्रोजेक्ट में आरएक्सजेवा जोड़ने की कोशिश कर रहा हूं। मैं एक कैशrxjava के साथ retrofit 2.0 में अनुरोध url कैसे प्राप्त करें?

Observable<MyResponseObject> apiCall(@Body body); 

के रूप में और RxJava कॉल में SQLite में एक API कॉल बना रहा हूं और url प्राप्त करने में चाहते हैं और यह प्रतिक्रिया डेटा के साथ:

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

    } 

    @Override 
    public void onError(Throwable e) { 

    } 

    @Override 
    public void onNext(MyResponseObject myResponseObject) { 

    } 
}); 

रेट्रोफिट 1.9 में, हम कर सकते थे सफलता कॉलबैक में यूआरएल प्राप्त करें:

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

आप आरएक्सजेवा का उपयोग कर रेट्रोफिट 2.0 के साथ ऐसा कैसे करते हैं?

+0

इस पर कोई सफलता? मैं भी इस – neteinstein

उत्तर

18

अद्यतन:

सवाल फिर से पढ़ने के बाद:

आप कच्चे प्रतिक्रिया आप अपने API इंटरफ़ेस परिभाषित करने की जरूरत के लिए उपयोग करना चाहते हैं के रूप में:

Observable<Response<MyResponseObject>> apiCall(@Body body); 
बजाय

:

Observable<MyResponseObject> apiCall(@Body body); 

आप यूआरएल का उपयोग कर प्राप्त कर सकते हैं:

response.raw().request().url() 
यहाँ

:
response रेट्रोफिट
raw से प्रतिक्रिया है OkHttp
request से प्रतिक्रिया है जो UrlHttpUrl के रूप में शामिल OkHttp से अनुरोध है।

+4

के लिए खोज कर रहा हूं यह retrofit1.9 में उपयोगी है, लेकिन retrofit2.0 और rxjava में मैं retrofit से प्रतिक्रिया पुनर्प्राप्त नहीं कर सकता –

संबंधित मुद्दे