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.

如何写入XElementrequestStream保留现有的字符编码?

4

1 回答 1

1

在比以前更深入地研究文档之后,我找到了答案。

该类XDocument有一个名为 的属性Declaration,它的类型为XDeclaration。该XDeclaration对象有一个名为的属性Encoding,其中包含我需要的信息。

我只需要保留该属性,以便将其传递给XmlTextWriter构造函数。

于 2013-08-05T13:58:04.747 回答