Вопрос

У меня есть 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 выводит данные в поток запросов).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top