.NET HttpClient so‘rovlarini proksi orqali yuboring
WebProxy’ni HttpClientHandler’da sozlab, proksi yo‘nalishi o‘chiq qolishi yoki noto‘g‘ri mijozga bog‘lanishini oldini oling.
So‘rov proksi ishlovchingiz bilan yaratilgan HttpClient obyektini ishlatishi kerak. Aloqasiz WebProxy obyekti yaratish boshqa mijoz yo‘lini o‘zgartirmaydi.
using System;
using System.Net;
using System.Net.Http;
var proxy = new WebProxy("http://203.0.113.10:8080")
{
BypassProxyOnLocal = false
};
using var handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
using var client = new HttpClient(handler)
{
Timeout = TimeSpan.FromSeconds(15)
};
using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());Hujjat manzilini xizmatingizdagi yoki HTTP proksi ro‘yxatidagi haqiqiy HTTP proksi bilan almashtiring. Bu yuqori darajali sintaksis zamonaviy C# konsol loyihasiga mos; eski loyihalar buyruqlarni asinxron Main ichiga joylashtirishi mumkin.
Ishlovchining ikkala xususiyatini tekshiring: Proxy oxirgi nuqtani tanlaydi, UseProxy=true uni ishlatishni yoqadi. Nuqta alohida ishlasa-yu ilovada ishlamasa, kod UseProxyni o‘chirmasligini va chaqiruv shu nusxani ishlatishini tasdiqlang. Maxsus ishlovchi jarayon yoki OS proksini topishiga tayanishdan saqlaydi.
Proksi operatori hisob bersa, NetworkCredentialni WebProxy.Credentials xususiyatiga tayinlang. Sayt Authorization’i boshqa bosqich uchun, ommaviy IP:port yozuvi standart kirish ma’lumoti bermaydi. http:// tinglovchisi HTTPS’ni tunnel orqali tashiy oladi; oddiy nishon tekshiruvini saqlang.
Bu qisqa dastur chiqishda obyektlarni bo‘shatadi. Takroriy xizmat chaqiruvlarida .NET mijoz umriga oid yo‘riqnomaga amal qilib, har so‘rovda ulanish hovuzini qayta qurmasdan ish yuklamasi uchun mijoz/ishlovchini saqlang. Qaytgan holatni tekshiring: ishlayotgan proksi yo‘li ham sayt rad javobini olib kelishi mumkin.