HttpClient.DefaultProxy.IsBypassed తో .NET యొక్క NO_PROXY నియమాలను తనిఖీ చేయండి
HttpClient రెండింటికీ ప్రాక్సీని దాటవేయాల్సి వచ్చినప్పుడు బేర్ డొమైన్ మరియు ముందు చుక్క ఉన్న రూపం రెండింటినీ జాబితా చేసి, తర్వాత IsBypassed తనిఖీ చేయండి.
HttpClient యొక్క డాక్యుమెంట్ చేయబడిన పర్యావరణ-ప్రాక్సీ విధానం ప్రకారం example.internal మరియు .example.internal వేర్వేరుగా సరిపోతాయి. బేర్ పేరు మాతృ హోస్ట్ను ఎంచుకుంటుంది; ముందు చుక్క ఉన్న రూపం దాని ఉప-డొమైన్లను ఎంచుకుంటుంది.
రెండూ నేరుగా ఉండాలంటే, రెండింటినీ ప్రారంభ పర్యావరణంలో చేర్చండి:
export no_proxy='example.internal,.example.internal'
వీటిని ఉద్దేశించిన ఇప్పటికే ఉన్న బైపాస్ జాబితాతో విలీనం చేయండి. వేరియబుల్ పేర్లు పెద్ద-చిన్న అక్షరాలను వేరు చేసే వ్యవస్థల్లో, .NET మొదట చిన్న అక్షరాల ప్రాక్సీ పర్యావరణ పేర్లను, తర్వాత పెద్ద అక్షరాల పేర్లను తనిఖీ చేస్తుంది, కాబట్టి పాత no_proxy NO_PROXY కంటే ముందు రావచ్చు.
అనువర్తనం లోపల, గమ్యానికి HTTP అభ్యర్థనను పంపకుండానే డిఫాల్ట్ ఎంపికదారును పరిశీలించవచ్చు:
foreach (var host in new[] {
"example.internal", "api.example.internal", "other.internal"
})
{
var uri = new Uri("https://" + host + "/");
Console.WriteLine($"{host}: bypass={HttpClient.DefaultProxy.IsBypassed(uri)}");
}
ఈ భాగం System మరియు System.Net.Http ఉపయోగిస్తుంది. అప్లికేషన్ స్పష్టంగా మరొక IWebProxy ఇచ్చినట్లయితే, బదులుగా నిజమైన హ్యాండ్లర్ ప్రాక్సీని తనిఖీ చేయండి. డిఫాల్ట్ ప్రాక్సీ ప్రారంభం కాకముందే ఉద్దేశించిన పర్యావరణాన్ని సెట్ చేయండి.
ఇవి .NET యొక్క డాక్యుమెంట్ చేయబడిన నియమాలు. అదే స్ట్రింగ్ను ఉపయోగించిన curl ఫలితం మరో క్లయింట్ అదే మార్గాన్ని ఎంచుకుందని నిరూపించదు, మరియు బైపాస్ నిర్ణయానికి ఇప్పటికీ నేరుగా నెట్వర్క్ చేరుకోగలగడం అవసరం.