Trosglwyddo XML a lawrlwythwyd i .NET XmlReader fel ffrwd
Trosglwyddwch ffrwd yr ymateb drwy'r proksi i'r parser XML yn hytrach na gofyn iddo nôl yr URL wreiddiol eto.
Mae'r cleient HTTP yn lawrlwytho'r XML drwy'r proksi cywir. Mae'r llinell nesaf yn creu darllenydd XML o'r URL gwreiddiol. Mae'r llinell honno'n dechrau ail gaffael yn lle parsio'r data a lawrlwythwyd.
Ar gyfer cleient sydd eisoes wedi'i ffurfweddu â'r llwybr arfaethedig, rhowch ei ffrwd ymateb i'r parser:
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);
Y gofodau enw perthnasol yw System.Xml a System.Xml.Linq. Mae'r enghraifft yn analluogi prosesu DTD a datrysiad allanol yn fwriadol; nid yw'n ffordd o gaffael endidau allanol mympwyol drwy'r un cleient.
Mae'r URI sylfaen yn cadw metaddata lleoliad y ddogfen. Os yw llif gwaith parsio neu ddilysu cymeradwy yn caffael sgemiau allanol neu ddibyniaethau eraill, mae angen resolver penodol a chynllun llwybro eu hunain ar y caffaeliadau hynny.
Peidiwch â diagnosio ail fethiant rhwydwaith drwy newid y cyfrinair ar y cleient cyntaf, llwyddiannus. Sefydlwch a gafodd y parser ffrwd neu URL, yna dilynwch unrhyw adnoddau ychwanegol ar wahân.