.NET HttpClient sorğularını proksi vasitəsilə göndərin
WebProxy-ni HttpClientHandler-də qurun, proksi marşrutunun bağlı qalmasına və ya yanlış müştəriyə bağlanmasına yol verməyin.
Sorğu sizin proksi işləyicinizlə yaradılmış HttpClient obyektindən istifadə etməlidir. Əlaqəsiz WebProxy obyekti yaratmaq başqa müştərinin yolunu dəyişmir.
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());Sənəd ünvanını xidmətinizdən və ya HTTP proksi siyahısından həqiqi HTTP proksi ilə əvəz edin. Bu yuxarı səviyyəli sintaksis müasir C# konsol layihəsinə uyğundur; köhnə layihələr əmrləri asinxron Main içinə qoya bilər.
İşləyicinin hər iki xassəsini yoxlayın: Proxy son nöqtəni seçir, UseProxy=true onun istifadəsini aktivləşdirir. Son nöqtə ayrıca işləyib tətbiqdə işləmirsə, kodun UseProxy istifadəsini söndürmədiyini və çağırışın bu nüsxəni işlətdiyini təsdiqləyin. Xüsusi işləyici proses və ya OS aşkarlamasından asılılığı aradan qaldırır.
Proksi operatoru hesab verəndə NetworkCredential obyektini WebProxy.Credentials xassəsinə təyin edin. Saytın Authorization-u başqa keçid üçündür, ictimai IP:port qeydi standart giriş məlumatı vermir. http:// dinləyicisi HTTPS-i tunellə daşıya bilər; normal hədəf yoxlamasını saxlayın.
Bu qısa proqram çıxışda obyektləri azad edir. Təkrarlanan xidmət çağırışları üçün .NET müştəri ömrü təlimatını izləyin və hər sorğuda bağlantı hovuzlarını yenidən yaratmaq əvəzinə iş yükü üçün müştəri/işləyicini saxlayın. Qayıdan statusu yoxlayın: işləyən proksi yolu yenə saytın rədd cavabını daşıya bilər.