Java ProxySelector: விடுபட்ட HTTP மற்றும் HTTPS துறைகளை இயல்பாக்குதல்
தனிப்பயன் ProxySelector இல் இலக்குகளை ஒப்பிடும் முன் விடப்பட்ட HTTP துறைகளை இயல்பாக்கி, HTTP விதிகளை மூல socket தேர்வுக்கு வெளியே வைத்திருங்கள்.
ஒரு விதி 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-ஐ மட்டும் சரிசெய்வது விடப்பட்ட துறையுடன் உள்ளமைக்கப்பட்ட இலக்கை இன்னும் பொருந்தாமல் விடும். ஹோஸ்ட், பயனுள்ள துறை மற்றும் நோக்கிய திட்டத்தை ஒப்பிடுங்கள்; தவறான அல்லது ஹோஸ்ட் இல்லாத இலக்குகளை வரையறுக்கப்பட்ட பிழை பாதை வழியாக நிராகரிக்கவும்.
ஒவ்வொரு callback-ஐயும் HTTP முடிவாக மாற்ற வேண்டாம்
இயல்புநிலை தேர்வாளரிடம் மூல socket இணைப்புகளுக்கும் socket திட்டத்துடன் கேட்கலாம். ஹோஸ்ட் மற்றும் துறை மட்டும் பொருந்துவது அந்த callback URL கோரிக்கைகளுக்கான HTTP ப்ராக்ஸியைத் திருப்பித் தரக் கூடாது. ஆதரிக்கப்படாத திட்டங்களை முந்தைய தேர்வாளருக்கு ஒப்படைத்து அதன் பொருத்தமான நடத்தையைப் பாதுகாக்கவும்.
உங்களுடையதை நிறுவும் முன் அந்த முந்தைய தேர்வாளரைப் பிடித்து வைத்திருங்கள். மாற்றீட்டின் உள்ளிருந்து தற்போதைய இயல்புநிலையைத் தேடுவது மாற்றீட்டையே மீண்டும் அழைக்கலாம்.
பொருந்தாமையைக் கண்டறியும்போது திட்டம், ஹோஸ்ட், அசல் துறை மற்றும் பயனுள்ள துறையைப் பதிவு செய்யுங்கள். JDK செயலாக்கங்களுக்கிடையே கவனிக்கப்பட்ட ஒரு எண் அல்லது callback வரிசையை நம்ப வேண்டாம். கொள்கை ஒவ்வொரு வழங்கப்பட்ட URI-க்கும் சரியான முடிவை எடுக்க வேண்டும்.