HttpClient
একাধিক কলের জন্য পুনরায় ব্যবহার করার জন্য ডিজাইন করা হয়েছে । এমনকি একাধিক থ্রেড জুড়ে। HttpClientHandler
প্রমাণপত্রাদি এবং কুকিজ যে পুনরায় ব্যবহার কল জুড়ে হতে উদ্দেশ্যে করা হয় হয়েছে। একটি নতুন HttpClient
দৃষ্টান্ত থাকার জন্য of সমস্ত জিনিস পুনরায় সেটআপ করা দরকার। এছাড়াওDefaultRequestHeaders
সম্পত্তিটিতে এমন বৈশিষ্ট্য রয়েছে যা একাধিক কল করার উদ্দেশ্যে for প্রতিটি অনুরোধে এই মানগুলি পুনরায় সেট করে পয়েন্টটি হারাতে পারে।
এর আর একটি বড় সুবিধা HttpClient
হ'ল HttpMessageHandlers
ক্রস কাটিংয়ের উদ্বেগগুলি প্রয়োগ করার জন্য অনুরোধ / প্রতিক্রিয়া পাইপলাইনটিতে যুক্ত করার ক্ষমতা । এগুলি লগিং, অডিটিং, থ্রোটলিং, পুনর্নির্দেশ হ্যান্ডলিং, অফলাইন হ্যান্ডলিং, মেট্রিক্স ক্যাপচারের জন্য হতে পারে। সব ধরণের বিভিন্ন জিনিস। যদি প্রতিটি অনুরোধে একটি নতুন এইচটিপিপিএলিয়েন্ট তৈরি করা হয়, তবে এই সমস্ত বার্তা হ্যান্ডলারের প্রতিটি অনুরোধে সেটআপ করা দরকার এবং কোনওভাবে এই হ্যান্ডলারের অনুরোধগুলির মধ্যে ভাগ করা কোনও অ্যাপ্লিকেশন স্তরের অবস্থাও সরবরাহ করা প্রয়োজন।
আপনি যত বেশি বৈশিষ্ট্যগুলি ব্যবহার HttpClient
করবেন ততই আপনি দেখতে পাবেন যে কোনও বিদ্যমান উদাহরণ পুনরায় ব্যবহার করা অর্থবোধ করে।
যাইহোক, আমার মতে সবচেয়ে বড় সমস্যাটি হ'ল যখন কোনও HttpClient
শ্রেণি নিষ্পত্তি হয়, তখন তা নিষ্পত্তি করে HttpClientHandler
, যা তারপরে TCP/IP
পরিচালিত সংযোগের পুলটিতে জোর করে সংযোগটি বন্ধ করে দেয় ServicePointManager
। এর অর্থ হ'ল একটি নতুন সাথে প্রতিটি অনুরোধের HttpClient
জন্য একটি নতুন TCP/IP
সংযোগ পুনঃপ্রতিষ্ঠা করা দরকার ।
আমার পরীক্ষাগুলি থেকে, ল্যানটিতে প্লেইন এইচটিটিপি ব্যবহার করে, পারফরম্যান্স হিট মোটামুটি নগণ্য। আমার সন্দেহ হয় কারণ এটি একটি অন্তর্নিহিত টিসিপি রক্ষণশীল আছে যা সংযোগটি HttpClientHandler
বন্ধ করার চেষ্টা করার পরেও এটি উন্মুক্ত করে রেখেছে ।
ইন্টারনেটে যাওয়ার অনুরোধগুলিতে, আমি একটি আলাদা গল্প দেখেছি। প্রতিবার অনুরোধটি পুনরায় খোলার কারণে 40% পারফরম্যান্স হিট করেছি।
আমি সন্দেহ করি যে কোনও HTTPS
সংযোগের হিট আরও খারাপ হবে।
আমার পরামর্শ হ'ল আপনি সংযুক্ত প্রতিটি পৃথক এপিআইয়ের জন্য আপনার আবেদনের আজীবন এইচটিপিপ্লিনেন্টের একটি উদাহরণ রাখুন ।
Stopwatch
ক্লাসটি এটির মানদণ্ডে ব্যবহার করতে পারেন । আমার অনুমানটি হ'ল এককটি হওয়া আরও বেশি অর্থবোধ করেHttpClient
, ধরে নিবেন যে এই সমস্ত দৃষ্টান্ত একই প্রসঙ্গে ব্যবহৃত হয়েছে।