پرانے HttpClient 4.2.2 ایپلیکیشن میں اسناد فراہم کرنے والا اور تصدیق کی کیش الگ الگ کام کرتے ہیں۔ فراہم کنندہ اکاؤنٹ دیتا ہے؛ کیش جان بوجھ کر پہلے سے ترتیب دی گئی تصدیق اسکیم کو اگلے چیلنج آنے سے پہلے حصہ لینے دیتی ہے۔

پرانی پراکسی مخصوص BasicScheme کنسٹرکٹر کے لیے، حوالگی ایسی دکھتی ہے:

AuthCache cache = new BasicAuthCache();
cache.put(proxy, new BasicScheme(ChallengeState.PROXY));

HttpContext context = new BasicHttpContext();
context.setAttribute(ClientContext.AUTH_CACHE, cache);
HttpResponse response = client.execute(request, context);

یہ حصہ فرض کرتا ہے کہ client کے پاس پہلے سے موزوں پراکسی راستہ اور اسناد فراہم کرنے والا موجود ہے۔ proxy اس کا HttpHost ہے، اور request اصل عمل ہے۔ کیش کی کلید کو اسی واسطے کی وضاحت کرنی چاہیے، منزل کی ویب سائٹ کی نہیں۔

بھرا ہوا سیاق execute کو دیں۔ اسے بنا کر پھر ایسا اوورلوڈ استعمال کرنا جو دوسرا سیاق بناتا ہے، کیش کو تبادلے سے باہر چھوڑ دیتا ہے۔ بعد کے ان اعمال کے لیے جنہیں وہی تصدیقی حالت مشترک کرنی ہے، ہر بار خالی سیاق دوبارہ بنانے کے بجائے موزوں سیاق رکھیں۔

واضح PROXY حالت اسی پرانی API کی ہے۔ TARGET منزل کی تصدیق سے متعلق ہے۔ نئی HttpClient نسلوں نے پیکجز اور تصدیق کی APIs بدل دی ہیں، اس لیے اسے موجودہ 4.2 کوڈ کے لیے دیکھ بھال کی رہنمائی سمجھیں، نئے client کے لیے نسخہ نہیں۔

عام چیلنج سے چلنے والا تبادلہ اب بھی درست ہو سکتا ہے۔ Basic تصدیق صرف کسی معلوم اور مطلوب پراکسی کے لیے بوئیں، اور اگلے عمل کو اس کے کنکشن کی ضرورت سے پہلے ہر جواب استعمال کریں یا چھوڑ دیں۔ مفید نتیجہ وہ اکاؤنٹ اور کیش شدہ اسکیم ہے جو درخواست واقعی بھیجنے والے عمل سے منسلک ہوتی ہے۔

متعلقہ مضامین