我正在研究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
并保留现有字符编码?
答案 0 :(得分:1)
在深入挖掘文档之后,我找到了答案。
XDocument
类有一个名为Declaration
的属性,其类型为XDeclaration
。 XDeclaration
对象有一个名为Encoding
的属性,它包含我需要的信息。
我只需要保留该属性,以便将其传递给XmlTextWriter
构造函数。