HTTP klientas atsisiunčia XML per tinkamą tarpinį serverį. Kita eilutė sukuria XML skaitytuvą iš pradinio URL. Ši eilutė pradeda naują gavimą, o ne analizuoja atsisiųstus duomenis.

Klientui, jau sukonfigūruotam su numatytuu maršrutu, perduokite jo atsakymo srautą analizatoriui:

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

Aktualios vardų erdvės yra System.Xml ir System.Xml.Linq. Pavyzdys sąmoningai išjungia DTD apdorojimą ir išorinį sprendimą; tai nėra būdas per tą patį klientą gauti savavališkas išorines esybes.

Bazinis URI išsaugo dokumento vietos metaduomenis. Jei patvirtinta analizės arba tikrinimo eiga vis dėlto gauna išorines schemas ar kitas priklausomybes, tiems gavimams reikia savo aiškaus sprendėjo ir maršrutizavimo dizaino.

Nediagnozuokite antrojo tinklo gedimo keisdami pirmojo, sėkmingo kliento slaptažodį. Nustatykite, ar analizatorius gavo srautą, ar URL, tada bet kokius papildomus išteklius sekite atskirai.

Susiję straipsniai