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-ის შედეგი არ ამტკიცებს, რომ სხვა კლიენტმა იგივე მარშრუტი აირჩია, და გვერდის ავლის გადაწყვეტილებას კვლავ პირდაპირი ქსელური ხელმისაწვდომობა სჭირდება.

დაკავშირებული სტატიები