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 પરિણામ સાબિત કરતું નથી કે બીજા ક્લાયન્ટે એ જ માર્ગ પસંદ કર્યો, અને બાયપાસ નિર્ણય માટે હજી પણ સીધી નેટવર્ક પહોંચ જરૂરી છે.