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

Dit moderne .NET-fragmint brûkt System.Net en System.Net.Http. De konfigurearre klant beheart netwurkrouting, en Html Agility Pack ûntfangt de weromjûn HTML-string. Hâld in passend konfigurearre klant foar trochrinnend wurk ynstee fan syn poelen foar elke side opnij te bouwen.

Foar dit foarbyld fan in iepenbiere side kin in net-autentisearre kandidaat út de HTTP-proxylist de tuskenpersoan ferfange. Ferfang de bestimming apart. De URL fan de webside behâldt syn TLS-identiteit. Autentisearre proxy-byloggegevens hearre by WebProxy; noch de gegevens fan de webside noch útskeakele ferifikaasje ferfange se.

GetStringAsync behannelet net-slagge HTTP-statussen as flaters. Konvertearje in mislearre download net yn in leech HtmlDocument. As de applikaasje headers, statusdetails of in flaterslichem nedich hat, brûk dan in op antwurd rjochte HTTP-operaasje en ûndersykje dy foar it parsen.

De stringmetoade foarkomt in betingstleaze ekstra UTF-8-konverzje fan rauwe bytes. As jo bewust bytes helje, bring dan de fereaske fan antwurd- en dokumintkodearring oer nei it dekodearjen.

LoadHtml produsearret in parst dokumint; it fiert gjin skripts út, laadt gjin stylen en folget gjin keppelingen. Los dêropfolgjende relative keppelingen op tsjin de lokaasje fan it antwurd, en tink derom dat troch de browser renderde eleminten yn 'e downloadde boarne ûntbrekke kinne. Elk antwurd soe syn eigen dokumint produsearje moatte, sels as fersiken deselde konfigurearre HTTP-klant diele.

Relatearre artikelen