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

Dette moderne .NET-utdraget brukar System.Net og System.Net.Http. Den konfigurerte klienten styrer nettverksrutinga, og Html Agility Pack tek imot HTML-strengen som blir returnert. Hald ein rett konfigurert klient for løpande arbeid i staden for å byggje opp att bassenga hans for kvar side.

For dette dømet med ei offentleg side kan ein uautentisert kandidat frå HTTP-proxylista erstatte mellomleddet. Bytt ut destinasjonen separat. Nettstadens URL held på TLS-identiteten sin. Autentiserte proxy-legitimasjonar høyrer til på WebProxy; korkje nettstadens legitimasjon eller deaktivert verifisering erstattar dei.

GetStringAsync behandlar HTTP-statusar utan suksess som feil. Ikkje konverter ei mislukka nedlasting til eit tomt HtmlDocument. Viss programmet treng headarar, statusdetaljar eller ein feiltekst, bruk ein responsorientert HTTP-operasjon og undersøk han før parsing.

Strengmetoden unngår ei ubetinga ekstra UTF-8-konvertering av rå byte. Viss du med vilje hentar byte, før krava til svar- og dokumentkoding vidare til dekodinga.

LoadHtml produserer eit parsa dokument; det køyrer ikkje skript, lastar ikkje stilar og følgjer ikkje lenkjer. Løys påfølgjande relative lenkjer mot plasseringa til svaret, og hugs at element som nettlesaren rendrar kan mangla i den nedlasta kjelda. Kvart svar bør produsere sitt eige dokument sjølv når førespurnader deler den same konfigurerte HTTP-klienten.

Relaterte artiklar