using var handler = new HttpClientHandler
{
    UseProxy = true,
    Proxy = new WebProxy("http://proxy.example:8080")
};
using var client = new HttpClient(handler);

string html = await client.GetStringAsync(
    "https://www.example.com/catalog");
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);

دا مدرن .NET ټوټه System.Net او System.Net.Http کاروي. تنظیم شوی کلاینټ د شبکې لارښوونه اداره کوي، او Html Agility Pack بیرته راستانه شوې HTML تار ترلاسه کوي. د هرې پاڼې لپاره د هغې حوضونه بیا جوړولو پرځای د دوامدار کار لپاره په سمه توګه تنظیم شوی کلاینټ وساتئ.

د دې عامه پاڼې مثال لپاره، د HTTP پروکسي لیست څخه یو غیر تصدیق شوی نوماند کولی شي منځګړی بدل کړي. منزل په جلا توګه بدل کړئ. د وېبسایټ URL خپل TLS هویت ساتي. تصدیق شوي پروکسي اعتبارونه WebProxy پورې اړه لري؛ نه د وېبسایټ اعتبارونه او نه غیر فعال شوی تصدیق هغوی بدلوي.

GetStringAsync ناکام HTTP حالتونه د تیروتنې په توګه ګڼي. ناکام ډاونلوډ په خالي HtmlDocument مه بدلوئ. که اپلیکیشن سرلیکونه، د حالت توضیحات یا د تیروتنې بدن ته اړتیا ولري، د ځواب په لور HTTP عملیات وکاروئ او د تحلیل دمخه یې وګورئ.

د تار طریقه د خامو بایټونو د بې شرطه اضافي UTF-8 بدلون څخه مخنیوی کوي. که تاسو په قصدي توګه بایټونه راوړئ، د ځواب او سند د کوډ کولو اړتیاوې ډیکوډ کولو ته انتقال کړئ.

LoadHtml تحلیل شوی سند تولیدوي؛ هغه سکریپټونه نه چلوي، سټایلونه نه باروي او لینکونه نه تعقیبوي. وروستي نسبي لینکونه د ځواب د موقعیت په نسبت حل کړئ، او په یاد ولرئ چې د براوزر لخوا ښودل شوي عناصر ممکن په ډاونلوډ شوي سرچینه کې نه وي. هر ځواب باید خپل سند تولید کړي حتی کله چې غوښتنې ورته تنظیم شوی HTTP کلاینټ شریکوي.

اړوندې مقالې