所以我有一个通过POST方法接受XML的页面。这是一小段代码:
if (Request.ContentType != "text/xml")
throw new HttpException(500, "Unexpected Content Type");
StreamReader stream = new StreamReader(Request.InputStream);
string x = stream.ReadToEnd(); // added to view content of input stream
XDocument xmlInput = XDocument.Load(stream);
我收到错误,所以我将流转换为字符串,只是为了查看是否所有内容都正确发送。当我查看内容时,它看起来像这样:
%3C%3fxml +版本%3D%271.0%27 +编码%3D%27UTF-8%27%3F%3E%0D 0A%
所以我想我需要解码流。唯一的问题是我不知道如何在流上使用HtmlDecode,并仍然将其保留为StreamReader对象。
有没有办法做到这一点?
答案 0 :(得分:26)
显然,客户端正在将内容作为URL编码的XML发送。所以你需要解码这样的内容:
StreamReader stream = new StreamReader(Request.InputStream);
string x = stream.ReadToEnd();
string xml = HttpUtility.UrlDecode(x);
XDocument xmlInput = XDocument.LoadXml(xml);
无论如何,问题可能在客户端......为什么用这种方式编码XML?