Nodot lejupielādēto XML .NET XmlReader kā plūsmu
Nododiet starpniekservera saņemto atbildes plūsmu XML analizatoram, nevis lieciet tam atkārtoti iegūt sākotnējo URL.
HTTP klients lejupielādē XML caur pareizo starpniekserveri. Nākamā rinda izveido XML lasītāju no sākotnējā URL. Šī rinda sāk jaunu iegūšanu, nevis analizē lejupielādētos datus.
Klientam, kas jau konfigurēts ar paredzēto maršrutu, nododiet tā atbildes plūsmu analizatoram:
using var response = await client.GetAsync(documentUri);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();
var settings = new XmlReaderSettings
{
DtdProcessing = DtdProcessing.Prohibit,
XmlResolver = null
};
using var reader = XmlReader.Create(stream, settings, documentUri.AbsoluteUri);
var document = XDocument.Load(reader);
Attiecīgās vārdu telpas ir System.Xml un System.Xml.Linq. Piemērs apzināti atslēdz DTD apstrādi un ārēju atrisināšanu; tas nav veids, kā caur to pašu klientu iegūt patvaļīgas ārējas entītes.
Bāzes URI saglabā dokumenta atrašanās vietas metadatus. Ja apstiprināta analīzes vai validācijas plūsma tomēr iegūst ārējas shēmas vai citas atkarības, šiem ieguvumiem ir vajadzīgs savs skaidrs atrisinātājs un maršrutēšanas dizains.
Nediagnosticējiet otru tīkla kļūmi, mainot paroli pirmajam, veiksmīgajam klientam. Noskaidrojiet, vai analizators saņēma plūsmu vai URL, pēc tam papildu resursus izsekojiet atsevišķi.