c# - 解码输入流

标签 c# asp.net

所以我有一个通过 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+version%3d%271.0%27+encoding%3d%27UTF-8%27%3f%3e%0d%0a

所以我想我需要解码流。唯一的问题是我不知道如何在流上使用 HtmlDecode,并仍然将其保留为 StreamReader 对象。

有什么办法吗?

最佳答案

显然,客户端将内容作为 URL 编码的 XML 发送。所以你需要像这样解码内容:

StreamReader stream = new StreamReader(Request.InputStream);
string x = stream.ReadToEnd();
string xml = HttpUtility.UrlDecode(x);

XDocument xmlInput = XDocument.LoadXml(xml);

无论如何,问题可能出在客户端......为什么要这样编码 XML?

关于c# - 解码输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957448/

相关文章:

c# - 依赖注入(inject)如何与中间件一起工作?

c# - 将标签中的值与文本框中输入的值进行比较,以从 MySQL 数据库中获取值 c# asp.net

asp.net - $ ("#dialog").parent().appendTo($ ("form:first"));

c# - 如何使用mvvm剑道网格发布数据并发布API Controller 不调用?

c# - 为什么我在通过 C# 创建新的 DotNetNuke 用户时得到 nullReferenceException?

c# - Net Core 3.1 API的Swagger UI非常慢

c# - SQL 查询后重定向页面

c# - session 中的数组、字典或列表?

c# - 如何创建下载的文本文件的 SHA256 哈希

c# - 在指定位置写入(控制台)