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 کلائنٹ شیئر کریں تو بھی ہر ردِعمل کو اپنی دستاویز بنانی چاہیے۔

متعلقہ مضامین