සෑම proxy ගිණුමකටම වෙන වෙනම .NET handler එකක් තබා ගන්න
දැනටමත් ඉල්ලීම් සපයන transport එකක WebProxy.Credentials ප්රතිස්ථාපනය කරනවාට වඩා එකවර ක්රියාත්මක වන ගිණුම් සඳහා වෙන වෙනම handlers සාදන්න.
transport එකක් එහි pool manager සාදන විට තෝරාගත් proxy අක්තපත්ර සපයන්නාගේ වස්තුව රඳවා ගත හැක. පසුව WebProxy.Credentials ප්රතිස්ථාපනය කිරීම විශ්වාසදායක ගිණුම් මාරුවක් නොවේ.
client භාවිතා කිරීමට පෙර මාර්ගය සහ ගිණුම එකට සාදන්න:
var proxy = new System.Net.WebProxy(proxyEndpoint)
{
Credentials = new System.Net.NetworkCredential(proxyUser, proxyPassword)
};
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = proxy
};
var client = new System.Net.Http.HttpClient(handler);අන්ත ලක්ෂ්යය සහ අක්තපත්ර යෙදුම් වින්යාසයෙන් එයි. දෙවන අනන්යතාවය සඳහා තවත් handler එකක් සාදන්න; පළමු handler බෙදාගන්නා තවත් HttpClient එකක් එහි ප්රතිපත්තිය ද බෙදාගනී.
අභිරුචි ICredentials සපයන්නෙකුට පසුව එන අභියෝගවලට පිළිතුරු දිය හැක, නමුත් ස්ථාපිත ටනලයක් තවත් ගිණුමක් ලෙස නැවත ලේබල් කළ නොහැක. අසමමුහුර්ත ඇමතුම් වටා එක් ගෝලීය පරිශීලක නාමයක්/මුරපදයක් පැවරීම අභියෝගයේ වේලාව සහ ගිණුමේ හිමිකාරිත්වය ගැටුමක තබයි.
නැවත භාවිතය අවශ්ය විට සීමිත client කට්ටලයක් තබා ගන්න. එහි transport ඉවත් කිරීමට පෙර පැරණි කටයුතු හිස් කරන්න. එක් එක් ඉල්ලීමට නව handler එකක් සම්බන්ධතා පූල් නාස්ති කරයි; සියලු ඓතිහාසික ගිණුම් සදාකාලිකව තබා ගැනීම ඒවා සීමාවකින් තොරව වර්ධනය කරයි.