XMLTextWriter в XMLDocument
-
10-07-2019 - |
Вопрос
У меня есть XMLTextWriter, записывающий поток веб-запроса.Все работает как надо:
Dim wr As WebRequest = WebRequest.Create("https://wwwcie.ups.com/ups.app/xml/ShipAccept")
With wr
.Method = "POST"
.ContentType = "application/x-www-form-urlencoded"
End With
Dim requestStream As Stream = wr.GetRequestStream
Using requestStream
Dim x As New XmlTextWriter(requestStream, Encoding.UTF8)
Using x
With x
.WriteStartDocument()
'XML
.WriteStartElement("ShipmentAcceptRequest")
'ShipmentAcceptRequest
.WriteStartElement("Request")
'Request
.WriteElementString("RequestAction", sar.Request.RequestAction)
'/Request
.WriteEndElement()
.WriteElementString("ShipmentDigest", sar.ShipmentDigest)
'/ShipmentAcceptRequest
.WriteEndElement()
'/XML
.WriteEndDocument()
.Flush()
End With
End Using
End Using
Как я могу перехватить этот XML, который записывается как тип XMLDocument?Я попытался вытащить его из потока, но это дало мне «поток не поддерживает чтение». Исключение (что меня не удивило).
Спасибо
Решение
Я не думаю, что вы можете перехватить поток, потому что по определению это:
писатель, который обеспечивает быстрый, некэшируемый и прямой способ генерации потоков
некэшированный и только вперед быть твоими проблемами там.
Так...что-нибудь мешает тебе сделать это в обратном порядке?
Запишите свой XML в XmlDocument, а когда вы закончите, вызовите XmlDocument.WriteTo, чтобы вывести XML в XmlWriter (в данном случае ваш XmlTextWriter выводит данные в поток запросов).