Java ProxySelector: অনুপস্থিত HTTP আৰু HTTPS প'ৰ্ট স্বাভাৱিক কৰা
এটা কাষ্টম ProxySelector-ত গন্তব্য তুলনা কৰাৰ আগতে বাদ পৰা HTTP প'ৰ্ট স্বাভাৱিক কৰক, আৰু HTTP নিয়মবোৰ ৰ' ছকেট নিৰ্বাচনৰ পৰা আঁতৰাই ৰাখক।
এটা নিয়মে http://reports.example:80/ প্ৰক্সিৰ মাজেৰে পঠিয়ায় কিন্তু http://reports.example/ পোনপটীয়াকৈ যাবলৈ দিয়ে। এই URL দুটাই একে সাধাৰণ HTTP এণ্ডপইণ্টকে বৰ্ণনা কৰে। অসঙ্গতিটো সাধাৰণতে পাৰ্চ কৰা প'ৰ্টবোৰ আক্ষৰিকভাৱে তুলনা কৰাৰ পৰা আহে।
URI-ত কোনো প'ৰ্ট নাথাকিলে URI.getPort() এ -1 ঘূৰাই দিয়ে। ই স্কিমৰ বাবে ডিফল্টটো প্ৰতিস্থাপন নকৰে। মানটো 80 ৰ সৈতে তুলনা কৰা এটা ৰাউটিং নীতিয়ে দ্বিতীয় URL টো হেৰুৱাব।
String scheme = uri.getScheme();
int port = uri.getPort();
if (port == -1) {
if ("http".equalsIgnoreCase(scheme)) port = 80;
else if ("https".equalsIgnoreCase(scheme)) port = 443;
}
তুলনাৰ দুয়োটা ফালে একে স্বাভাৱিকীকৰণ প্ৰয়োগ কৰক। কেৱল অনুৰোধ URI ঠিক কৰিলে বাদ পৰা প'ৰ্ট থকা এটা সংৰচিত গন্তব্য অসঙ্গত হৈয়ে থাকে। হ'ষ্ট, কাৰ্যকৰী প'ৰ্ট আৰু উদ্দেশ্যিত স্কিম তুলনা কৰক; বিকৃত বা হ'ষ্টহীন গন্তব্য এটা নিৰ্দিষ্ট ত্ৰুটি পথেৰে নাকচ কৰক।
প্ৰতিটো কলবেকক HTTP সিদ্ধান্তলৈ নপৰিণত কৰিব
এটা ডিফল্ট চিলেক্টৰক ৰ' ছকেট সংযোগৰ বাবেও সোধা যাব পাৰে, socket স্কিম ব্যৱহাৰ কৰি। কেৱল হ'ষ্ট আৰু প'ৰ্ট মিলিলেই সেই কলবেকে URL অনুৰোধৰ বাবে উদ্দেশ্যিত HTTP প্ৰক্সি ঘূৰাই দিয়া উচিত নহয়। অসমৰ্থিত স্কিমবোৰ আগৰ চিলেক্টৰলৈ প্ৰেৰণ কৰক, তাৰ উপযুক্ত আচৰণ ৰক্ষা কৰি।
নিজৰ কাষ্টম চিলেক্টৰ স্থাপন কৰাৰ আগতে সেই আগৰ চিলেক্টৰটো ধৰি ৰাখক। প্ৰতিস্থাপকৰ ভিতৰৰ পৰা বৰ্তমানৰ ডিফল্ট বিচাৰিলে প্ৰতিস্থাপকটোকে পুনৰ ক'ল কৰিব পাৰে।
অসঙ্গতি নিৰ্ণয় কৰোঁতে স্কিম, হ'ষ্ট, মূল প'ৰ্ট আৰু কাৰ্যকৰী প'ৰ্ট লগ কৰক। JDK ৰূপায়ণসমূহৰ মাজত এটা পৰ্যবেক্ষিত সংখ্যা বা কলবেকৰ ক্ৰমৰ ওপৰত নিৰ্ভৰ নকৰিব। নীতিয়ে প্ৰতিটো যোগান ধৰা URI-ৰ বাবে শুদ্ধ সিদ্ধান্ত লোৱা উচিত।