जब हमारे पास OkHttp हो तो रेट्रोफिट का उपयोग क्यों करें


107

OkHttp से हम HTTP रिक्वेस्ट कर सकते हैं फिर सर्वर से प्रतिक्रिया प्राप्त कर सकते हैं

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url(url)
  .build();
Response response = client.newCall(request).execute();

इसके बाद Gson के साथ हमें आवश्यक वस्तु के लिए प्रतिक्रिया परिवर्तित करें।

यह स्क्वायर / OkHttp डॉक्टर से है:

इसका अनुरोध / प्रतिक्रिया एपीआई धाराप्रवाह बिल्डरों और अपरिवर्तनीयता के साथ बनाया गया है। यह कॉलबैक के साथ सिंक्रोनस ब्लॉकिंग कॉल और एसिक्स कॉल दोनों को सपोर्ट करता है

मैं stackOverFlow से पढ़ता हूं

यदि उपलब्ध हो तो रेट्रोफ़िट स्वचालित रूप से OkHTTP का उपयोग करता है

तो मेरा सवाल यह है कि वास्तव में रेट्रोफिट क्या है?

क्या Retrofit कर सकता है कि OkHttp नहीं कर सकता है ?!

मुझे लगता है कि OkHttp और Gson अनुरोध एपीआई समस्या को हल करते हैं, इसलिए रेट्रोफिट हमारे लिए किस समस्या का समाधान है?


2
राय आधारित और इस तरह के रूप में बंद होने की संभावना है। इस तथ्य का तथ्य यह है कि दोनों मौजूद हैं और किसी की मृत्यु नहीं हुई है। जिसका अर्थ है कि दोनों के पास Android डेवलपर समुदाय की नज़र में वैध उपयोग के मामले हैं।
fge

1
इस पोस्ट की जाँच करें stackoverflow.com/q/16902716/1144203
ivan.sim

@isim मैंने इस लिंक को पहले देखा था, लेकिन मुझे समझ नहीं आ रहा है कि Retrofit की आवश्यकता क्यों है ?! और क्यों पुराना वापस OkHttp का उपयोग करें!
मेहरदाद फ़राजी

@MehrdadFaraji यदि OkHttp आप जो चाहें कर सकते हैं, तो आपको Retrofit की आवश्यकता नहीं है। क्यों रेट्रोफिट OkHttp का उपयोग करता है कुछ चीजें जैसे OkHttp Callपैटर्न, OkHttp इंटरसेप्टर, सर्टिफिकेट पिनिंग आदि को सक्षम करने के लिए
ivan.sim

rxjava के साथ रेट्रोफिट का उपयोग करना एक सामान्य उद्योग अभ्यास बन गया है, जो रेट्रोफिट का उपयोग करने का एक और कारण है
paul_hundal

जवाबों:


95

OkHttp के साथ हम HTTP अनुरोध कर सकते हैं, फिर सर्वर से प्रतिक्रिया प्राप्त कर सकते हैं ... फिर Gson के साथ हमें आवश्यक ऑब्जेक्ट के लिए प्रतिक्रिया बदलें

ध्यान दें कि आपके कोड स्निपेट में, आपने दो उल्लेखनीय चरणों को छोड़ दिया है: URL जनरेट करना और वास्तव में GSON का उपयोग करके JSON को पार्स करना।

तो मेरा सवाल यह है कि वास्तव में रेट्रोफिट क्या है?

यह URL उत्पन्न करने के लिए है (आपके विशिष्ट REST API से बंधा प्रकार-जागरूक जनरेट कोड का उपयोग करके) और वास्तव में GSON का उपयोग करके JSON को पार्स करना। दूसरे शब्दों में, यह वही करता है जो आपने अपने कोड स्निपेट में छोड़ दिया था।

इसके अलावा, कुछ प्रकार के REST परिचालनों के लिए (जैसे, POST), यह असेम्बल करने में थोड़ी मदद करता है कि क्या सबमिट करना है (उदाहरण के लिए, एन्कोडेड फॉर्म जनरेट करना)।

परिभाषा के अनुसार, आपको Retrofit का उपयोग करने की आवश्यकता नहीं है। रिट्रोफिट कंप्यूटर कोड है, जो कंप्यूटर प्रोग्रामर द्वारा लिखा जाता है। कोई और व्यक्ति कोड लिख सकता है कि रिट्रोफिट क्या करता है।

क्यों पुराना वापस OkHttp का उपयोग करें

रिट्रोफिट को HTTP ऑपरेशन करने की आवश्यकता है। यह जहां उपलब्ध हो, ओकेहटप का उपयोग करता है, ओकेहटप के लिए यह सब प्रदान करता है: HTTP / 2 और SPDY समर्थन, प्लग-इन इंटरसेप्टर, आदि।


32

यदि आप अपने सर्वर API को अपने एप्लिकेशन (टाइप-सेफ़िंग) के अंदर मैप करने का प्रयास कर रहे हैं तो आपको रेट्रोफ़िट का उपयोग करना चाहिए। रेट्रोफिट सिर्फ एक एपीआई एडॉप्टर है जो ओएचटीटीपी पर लिपटा है।

यदि आप अपने एपीआई के साथ बातचीत कोड को सुरक्षित और संशोधित करना चाहते हैं, तो रेट्रोफिट का उपयोग करें। इसके अलावा, अंतर्निहित प्रदर्शन, अनुरोध चूक, ओकेएचटीपी और रेट्रोफिट आदि समान हैं।

इसके अलावा, मैं जेसी विल्सन (प्रमुख एंड्रॉइड HTTP क्लाइंट के डेवलपर) से इस पॉडकास्ट को सुनने की सिफारिश करूंगा , जहां वह अपाचे HTTP क्लाइंट, HTTPURLConnection, okHTTP और रेट्रोफिट के विकास के इतिहास की गहराई से बात करता है।


23

Retrofit बनाम OkHttp कारण सरल है : OkHttp एक शुद्ध HTTP / SPDY क्लाइंट है जो किसी भी निम्न-स्तरीय नेटवर्क संचालन, कैशिंग, अनुरोध और प्रतिक्रिया हेरफेर के लिए जिम्मेदार है, और कई और। इसके विपरीत, रेट्रोफिट एक उच्च-स्तरीय आरईएसस्ट एब्स्ट्रक्शन बिल्ड है जो ओक्हेट्प के शीर्ष पर है। Retrofit 2 को दृढ़ता से OkHttp के साथ जोड़ा गया है और इसका गहन उपयोग किया जाता है।

OkHttp फ़ंक्शंस: कनेक्शन पूलिंग, गज़िंग, कैशिंग, नेटवर्क समस्याओं, सिंक और async कॉल, रीडायरेक्ट, रीट्रीज़ ... आदि से पुनर्प्राप्त करता है।

रेट्रोफ़िट फ़ंक्शंस: URL में हेरफेर, अनुरोध करना, लोड करना, कैशिंग, थ्रेडिंग, सिंक्रोनाइज़ेशन ... यह सिंक और एसिंक्स कॉल की अनुमति देता है।


7

रेट्रोफिट स्क्वायर द्वारा Android और Java के लिए एक REST क्लाइंट है। यह REST आधारित Webservice के माध्यम से JSON (या अन्य संरचित डेटा) को पुनः प्राप्त करना और अपलोड करना अपेक्षाकृत आसान बनाता है। रेट्रोफ़िट में, आप कॉन्फ़िगर करते हैं कि डेटा सीरियल के लिए कौन सा कनवर्टर उपयोग किया जाता है। आमतौर पर JSON के लिए, आप GSon का उपयोग करते हैं, लेकिन आप XML या अन्य प्रोटोकॉल को संसाधित करने के लिए कस्टम कन्वर्टर्स जोड़ सकते हैं। रेट्रोफिट HTTP अनुरोधों के लिए OkHttp लाइब्रेरी का उपयोग करता है। आपको इसकी विशेषताओं के लिए, इसकी आसानी के लिए, okhttp पर रेट्रोफिट का उपयोग करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.