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 ដែលបានកំណត់ដូចគ្នាក៏ដោយ។

អត្ថបទពាក់ព័ន្ធ