Nôl HTML drwy ddirprwy cyn ei ddadansoddi gyda Html Agility Pack
Cyfuno HttpClient wedi'i ffurfweddu drwy ddirprwy â Html Agility Pack gan gadw gwallau rhwydwaith ar wahân i ddadansoddi HTML.
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);Mae'r darn .NET modern hwn yn defnyddio System.Net a System.Net.Http. Y cleient wedi'i ffurfweddu sy'n rheoli'r llwybro rhwydwaith, ac mae Html Agility Pack yn cael y llinyn HTML a ddychwelwyd. Cadwch gleient wedi'i ffurfweddu'n briodol ar gyfer gwaith parhaus yn hytrach nag ailadeiladu ei byllau ar gyfer pob tudalen.
Ar gyfer yr enghraifft hon o dudalen gyhoeddus, gall ymgeisydd heb ei ddilysu o'r rhestr ddirprwyon HTTP ddisodli'r cyfryngwr. Disodlwch y cyrchfan ar wahân. Mae URL y wefan yn cadw ei hunaniaeth TLS. Mae manylion dilysu'r dirprwy yn perthyn i WebProxy; nid yw manylion y wefan nac unrhyw wirio wedi'i analluogi yn eu disodli.
Mae GetStringAsync yn trin statws HTTP aflwyddiannus fel gwallau. Peidiwch â throi lawrlwythiad aflwyddiannus yn HtmlDocument gwag. Os oes angen penawdau, manylion statws neu gorff gwall ar y cymhwysiad, defnyddiwch weithrediad HTTP sy'n canolbwyntio ar yr ymateb a'i archwilio cyn dadansoddi.
Mae'r dull llinyn yn osgoi trosi UTF-8 ychwanegol diamod o feitiau crai. Os ydych yn nôl beitiau'n fwriadol, cludwch ofynion amgodi'r ymateb a'r ddogfen i'r datgodi.
Mae LoadHtml yn cynhyrchu dogfen wedi'i dadansoddi; nid yw'n gweithredu sgriptiau, nid yw'n llwytho arddulliau nac yn dilyn dolenni. Datryswch ddolenni cymharol dilynol yn erbyn lleoliad yr ymateb, a chofiwch y gall elfennau a rendrwyd gan y porwr fod yn absennol o'r ffynhonnell a lawrlwythwyd. Dylai pob ymateb gynhyrchu ei ddogfen ei hun hyd yn oed pan fo ceisiadau'n rhannu'r un cleient HTTP wedi'i ffurfweddu.