質問

XMLRequestが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をインターセプトするにはどうすればよいですか?ストリームからそれをひっかけようとしましたが、「ストリームは読み取りをサポートしていません」と表示されました。例外(私を驚かせなかった)。

ありがとう

役に立ちましたか?

解決

ストリームをインターセプトできるとは思いません。定義により次のとおりです:

  

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

キャッシュされていないおよび前方のみが問題になります。

だから...逆の順序でそれを行うのを妨げる何かがありますか?

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top