2014-06-19 11 views
8

का उपयोग कर यूआरएल से वीडियो डाउनलोड करें मैं वेब सेवाओं का उपभोग करने के लिए रेट्रोफिट का उपयोग कर रहा हूं और अब तक यह बहुत अच्छा है। लेकिन क्या रेट्रोफिट यूआरएल से वीडियो डाउनलोड करने का एक तरीका प्रदान करता है?रेट्रोफिट

मैंने इस लिंक को चेक किया लेकिन @Streaming एनोटेशन अब उपलब्ध नहीं है। Retro fit Image download

उत्तर

15

हां आप @Streaming एनोटेशन का उपयोग कर सकते हैं जो संस्करण 1.6.0 के रूप में उपलब्ध है। सुनिश्चित करें कि आप उस संस्करण का उपयोग करें।

जैसा कि changelog: में निर्दिष्ट है नया: @ प्रतिक्रिया प्रकार पर स्ट्रीमिंग शरीर को बाइट [] को वितरित करने से पहले बफर कर देगा।

interface Api {   
    @Get("path/to/your/resource") 
    @Streaming 
    Response getData(); 
} 

फिर आप की तरह तो

Response response = api.getData() 
InputStream is = response.getBody().in(); 
// stream your data directly from the InputStream! 

ध्यान रखें कि मेरी उदाहरण सादगी के लिए तुल्यकालिक है InputStream से सीधे स्ट्रीम करने के लिए सक्षम होना चाहिए।

2

पूरा करने के लिए @Miguel Lavigne यहाँ का जवाब कैसे रेट्रोफिट 2 के साथ यह करने के लिए है:

interface Service { 
    @GET("path/to/your/resource") 
    @Streaming 
    Call<ResponseBody> getData(); 
} 


Call<ResponseBody> call = service.getData(); 
try { 
    InputStream is = call.execute().body().byteStream(); 
    (...) 
} catch (IOException e) {...}