যখন আমাদের OkHttp রয়েছে তখন কেন রেট্রোফিট ব্যবহার করুন


111

OkHttp এর মাধ্যমে আমরা HTTP অনুরোধ করতে পারি তারপরে সার্ভারের কাছ থেকে প্রতিক্রিয়া জানাতে পারি

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

তারপরে Gson lib এর সাথে আমাদের প্রয়োজন বস্তুর প্রতিক্রিয়া রূপান্তর করতে হবে।

এটি স্কয়ার / OkHttp ডক থেকে এসেছে:

এর অনুরোধ / প্রতিক্রিয়া এপিআই সাবলীল নির্মাতারা এবং অপরিবর্তনীয়তার সাথে ডিজাইন করা হয়েছে। এটি উভয় সিঙ্ক্রোনাস ব্লকিং কল এবং কলব্যাক সহ অ্যাসিঙ্ক কলগুলি সমর্থন করে

আমি স্ট্যাকওভারফ্লো থেকে পড়েছি

রিট্রোফিট যদি উপলভ্য থাকে তবে স্বয়ংক্রিয়ভাবে OkHTTP ব্যবহার করে

সুতরাং আমার প্রশ্নটি হ'ল রেট্রোফিট কিসের জন্য?

ওকেহ্যাট্প না করতে পারে এমন রিট্রোফিট কী করতে পারে ?!

আমার মনে হয় OkHttp এবং Gson অনুরোধের এপিআই সমস্যার সমাধান করে, সুতরাং আমাদের জন্য রেট্রোফিট কী সমস্যা সমাধান করবে?


4
মতামত ভিত্তিক এবং সম্ভবত যেমন বন্ধ হওয়ার সম্ভাবনা রয়েছে। বিষয়টির সত্যতা হ'ল উভয়ই বিদ্যমান এবং কেউ মারা যায় নি। যার অর্থ অ্যান্ড্রয়েড বিকাশকারী সম্প্রদায়ের চোখে উভয়েরই বৈধ ব্যবহারের মামলা রয়েছে।
fge

4
পোস্টটি দেখুন stackoverflow.com/q/16902716/1144203
ivan.sim

@ আইসিম আমি এই লিঙ্কটি আগে দেখেছি, তবে কেন বুঝতে পারি না রেট্রোফিটের দরকার কেন ?! এবং কেন রেট্রোফিট OkHttp ব্যবহার করে!
মেহরদাদ ফারাজি

@ মেহরদাদফারাজি আপনার পুনঃনির্মাণের দরকার নেই যদি OkHttp আপনি যা করতে পারেন তা করতে পারেন। কেন রিট্রোফিট OkHttp ব্যবহার করে কয়েকটি জিনিস OkHttp Callপ্যাটার্ন সক্ষম করতে পছন্দ করে, OkHttp ইন্টারসেপ্টর, শংসাপত্র পিনিং ইত্যাদি
ivan.sim 27:58

উত্তর:


98

OkHttp এর মাধ্যমে আমরা এইচটিটিপি অনুরোধ করতে পারি তারপরে সার্ভারের কাছ থেকে প্রতিক্রিয়া পেতে পারি ... তারপরে জিসন লিবের সাহায্যে আমাদের প্রয়োজনীয় সামগ্রীতে প্রতিক্রিয়া রূপান্তর করতে হবে

মনে রাখবেন যে আপনার কোড স্নিপেটে, আপনি দুটি উল্লেখযোগ্য পদক্ষেপ এড়িয়ে গেছেন: ইউআরএল তৈরি করা এবং জেসন ব্যবহার করে জেএসএনকে আসলে পার্স করা।

সুতরাং আমার প্রশ্নটি হ'ল রেট্রোফিট কিসের জন্য?

এটি ইউআরএল তৈরি করার জন্য (আপনার নির্দিষ্ট আরএসটি এপিআইতে টাইপ-সচেতন জেনারেট কোড ব্যবহার করে) এবং জিএসএন ব্যবহার করে জেএসএনকে পার্স করার জন্য। অন্য কথায়, এটি আপনার কোড স্নিপেটে যা এড়িয়ে গেছে তা করে।

এছাড়াও, নির্দিষ্ট ধরণের আরএসটি অপারেশনগুলির জন্য (যেমন, পোস্ট), কী জমা দিতে হবে তা সংগ্রহ করতে (যেমন, এনকোডযুক্ত ফর্ম তৈরি করা) কিছুটা সহায়তা করে।

সংজ্ঞা অনুসারে, আপনাকে retrofit ব্যবহার করার দরকার নেই। রেট্রোফিট কম্পিউটার প্রোগ্রামার দ্বারা লিখিত কম্পিউটার কোড। রেট্রোফিট যা করে তার জন্য অন্য কেউ কোড লিখতে পারে।

কেন retrofit OkHttp ব্যবহার করে

Retrofit এর HTTP ক্রিয়াকলাপ করা দরকার। এটি OkHttp ব্যবহার করে যেখানে উপলভ্য রয়েছে, OkHttp সরবরাহ করে এমন সমস্তগুলির জন্য: HTTP / 2 এবং এসপিডিওয়াই সমর্থন, প্লাগেবল ইন্টারসেপ্টর ইত্যাদি for


32

আপনি যদি নিজের অ্যাপ্লিকেশনের ভিতরে সার্ভার এপিআই ম্যাপ করার চেষ্টা করছেন (টাইপ-সেফিং) আপনার পুনঃনির্মাণ ব্যবহার করা উচিত। রেট্রোফিট হ'ল একটি এপিআই অ্যাডাপ্টার যা ওকেএইচটিটিপি জুড়ে রয়েছে।

যদি আপনি নিরাপদ টাইপ করতে চান এবং আপনার API এর সাথে ইন্টারঅ্যাকশন কোডটি মডুলারাইজ করতে চান তবে retrofit ব্যবহার করুন। এর বাইরে, অন্তর্নিহিত কর্মক্ষমতা, অনুরোধ ডিফল্টস, ওকে এইচটিটিপি এবং রেট্রোফিট ইত্যাদি একই the

এছাড়াও আমি জেসি উইলসন (বড় অ্যান্ড্রয়েড এইচটিটিপি ক্লায়েন্টগুলির বিকাশকারী) এর কাছ থেকে এই পডকাস্টটি শোনার পরামর্শ দেব , যেখানে তিনি অ্যাপাচি এইচটিটিপি ক্লায়েন্ট, এইচটিটিপিআরএল সংযোগ, ওএইচটিটিপি এবং রেট্রোফিটের বিকাশের ইতিহাসের গভীরতার সাথে কথা বলেছেন।


25

রিট্রোফিট বনাম OkHttp কারণটি সহজ : OkHttp হ'ল খাঁটি HTTP / SPDY ক্লায়েন্ট যে কোনও নিম্ন স্তরের নেটওয়ার্ক ক্রিয়াকলাপ, ক্যাশে, অনুরোধ এবং প্রতিক্রিয়া হেরফের এবং আরও অনেক কিছুর জন্য দায়ী। বিপরীতে, রেট্রোফিট হ'ল OkHttp এর শীর্ষে একটি উচ্চ-স্তরের REST বিমূর্ততা বিল্ড। রিট্রোফিট 2 টি দৃH়ভাবে OkHttp এর সাথে মিলিত হয়েছে এবং এর নিবিড় ব্যবহার করে।

OkHttp ফাংশন: সংযোগ পুলিং, গিজিপিং, ক্যাশিং, নেটওয়ার্ক সমস্যা থেকে পুনরুদ্ধার, সিঙ্ক এবং অ্যাসিঙ্ক কলগুলি, পুনর্নির্দেশগুলি, পুনরায় চেষ্টা করুন ... এবং আরও অনেক কিছু।

পুনঃনির্মাণ ফাংশন: ইউআরএল ম্যানিপুলেশন, অনুরোধ, লোডিং, ক্যাশে, থ্রেডিং, সিঙ্ক্রোনাইজেশন ... এটি সিঙ্ক এবং অ্যাসিঙ্ক কলগুলিকে মঞ্জুরি দেয়।


0

Retrofit মূলত OkHTTP এর ওপরে আর্কিটেকচার, এটি অভ্যন্তরীণভাবে কোনও অনুরোধ করার জন্য OkHttp ব্যবহার করে, পূর্বের জাভেতে যদি আমরা কোনও অনুরোধ করতে চাই তবে আমাদের HTTPUrl সংযোগ রয়েছে বা HTTPS Url কানেক্ট জেনে রেট্রোফিট ওকে এইচটিটিপি হ্যান্ডেলগুলি হ্যান্ডেল করে (এটি প্যাকেজগুলিতে বিভক্ত করে এটি শিরোনাম চিহ্নিত করে) for আমাদের যদি কিছু তথ্য প্রেরণের দরকার হয়।

রেট্রোফিট একটি বিশ্রাম ক্লায়েন্ট যা বিশ্রামের নীতির উপর ভিত্তি করে।

-> OkHttp একটি এইচটিটিপি ক্লায়েন্ট, যা এইচটিটিপি / 2 এবং এসপিডিওয়াই সমর্থন করে।

-> retrofit অ্যান্ড্রয়েড এবং জাভা জন্য এক প্রকার সুরক্ষিত HTTP ক্লায়েন্ট

-> OkHttp ওকিওর উপর নির্ভর করে।

-> retrofit OkHttP এর উপর নির্ভর করে,

সুতরাং রিট্রোফিটটি মূলত ওকেএইচটিটিপিতে একটি মোড়ক, এটি প্রয়োজনের সময় ব্যবহার করে এবং সহজেই সংযোগের সময়সীমা পরিচালনা করতে পারে এবং কেবলমাত্র এর পদ্ধতিগুলি ব্যবহার করে টাইমআউট পড়তে পারে এবং ইন্টারসেপ্টর যুক্ত করে।

আশা করি আমি উত্তর দিয়েছি !!! শুভ কোডিং !!!!

আরও তথ্যের জন্য https://square.github.io/retrofit দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.