1

ASP.NET MVC アプリケーションに取り組んでいます。RESTful リクエストを送信する必要があるサービスがあります。この特定のケースでは、POST を使用して XML をサービスに送信する必要があります。WCF は使用していません。

XML はXElementオブジェクトにあります。元の XML には、文字エンコード情報が含まれています。XML をサービスに書き込むときに、文字エンコーディングを変更しないでおきたい。

次のようなコードを使用して、リクエスト ストリームへの参照を取得できます。

HttpWebRequest req = (HttpWebRequest) WebRequest.Create( url );
req.Method = "POST";
req.Timeout = 30000;
Stream requestStream = req.GetRequestStream();

私はこのコードを書きました:

using ( XmlWriter writer = new XmlTextWriter( requestStream, Encoding.UTF8 ) ) {
    xml.WriteTo( writer );
}

ただし、これにより XML のエンコーディングが変更される場合があります。エンコーディングが変更されないことが重要です。のエンコーディングを返すプロパティまたはメソッドが見つからないようです。XElement.

に書き込み、既存の文字エンコーディングを保持するXElementにはどうすればよいですか?requestStream

4

1 に答える 1

1

ドキュメントを以前よりも少し深く掘り下げた後、答えを見つけました。

XDocumentクラスには というプロパティがDeclarationあり、タイプはXDeclarationです。XDeclarationオブジェクトには、必要な情報を含むプロパティがありEncodingます。

XmlTextWriterコンストラクターに渡すことができるように、そのプロパティを永続化する必要があります。

于 2013-08-05T13:58:04.747 に答える