2

我有一个 XMLTextWriter 写入 WebRequest 的流。一切正常:

    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

我怎样才能截获这个被编写为 XMLDocument 类型的 XML?我尝试从流中获取它,但这给了我一个“流不支持阅读”。例外(这并不让我感到惊讶)。

谢谢

4

1 回答 1

1

我不认为你可以拦截流,因为它的定义是:

提供快速、非缓存、只进方式生成流的编写器

非缓存仅转发是您的问题。

所以......有什么阻止你以相反的顺序做这件事吗?

将您的 XML 写入 XmlDocument,完成后调用 XmlDocument.WriteTo 将 XML 输出到 XmlWriter(在本例中,您的 XmlTextWriter 输出到您的请求流)。

于 2010-02-05T14:52:09.910 回答