2

WebRequestのストリームに書き込む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

XMLDocumentタイプとして記述されているこのXMLをインターセプトするにはどうすればよいですか?ストリームからそれを引っ掛けてみましたが、「ストリームは読み取りをサポートしていません」という結果になりました。例外(これは私を驚かせませんでした)。

ありがとう

4

1 に答える 1

1

ストリームをインターセプトできるとは思いません。定義上、次のようになっているからです。

ストリームを生成する高速でキャッシュされていないフォワードのみの方法を提供するライター

キャッシュされておらず、転送のみが問題になります。

それで...あなたが逆の順序でそれをするのを妨げるものは何ですか?

XMLをXmlDocumentに書き込み、終了したらXmlDocument.WriteToを呼び出してXMLをXmlWriterに出力します(この場合、XmlTextWriterはリクエストストリームに出力します)。

于 2010-02-05T14:52:09.910 に答える