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);

Kipande hiki cha kisasa cha .NET kinatumia System.Net na System.Net.Http. Mteja aliyewekwa husimamia uelekezaji wa mtandao, na Html Agility Pack hupokea mfuatano wa HTML uliorejeshwa. Weka mteja aliyewekwa ipasavyo kwa kazi endelevu badala ya kujenga upya vidimbwi vyake kwa kila ukurasa.

Kwa mfano huu wa ukurasa wa umma, mgombea asiye na uthibitisho kutoka orodha ya proksi za HTTP anaweza kuchukua nafasi ya mpatanishi. Badilisha lengwa kando. URL ya tovuti huhifadhi utambulisho wake wa TLS. Vitambulisho vya proksi vilivyothibitishwa ni vya WebProxy; wala vitambulisho vya tovuti wala uthibitishaji uliozimwa haviwezi kuvibadilisha.

GetStringAsync huchukulia hali za HTTP zisizofanikiwa kama makosa. Usibadilishe upakuaji ulioshindikana kuwa HtmlDocument tupu. Ikiwa programu inahitaji vichwa, maelezo ya hali au mwili wa kosa, tumia operesheni ya HTTP inayoelekea majibu na uikague kabla ya uchanganuzi.

Mbinu ya mfuatano huepuka ubadilishaji wa ziada wa UTF-8 wa baiti ghafi bila sharti. Ikiwa unapata baiti kwa makusudi, hamisha mahitaji ya usimbaji wa majibu na hati kwenye uorodheshaji.

LoadHtml hutoa hati iliyochanganuliwa; haiendeshi skripti, haipakii mitindo wala haifuati viungo. Tatua viungo vihusishi vinavyofuata kuhusiana na mahali pa jibu, na kumbuka kuwa vipengele vinavyoonyeshwa na kivinjari vinaweza kukosekana katika chanzo kilichopakuliwa. Kila jibu linapaswa kutoa hati yake yenyewe hata maombi yakishiriki mteja mmoja wa HTTP aliyewekwa.

Makala zinazohusiana