我正在使用 PandaStream,它将 REST 通知作为 YAML 发送到我们的 ASP.NET 应用程序。我有阻塞并返回 500 的 Web 服务,因为它试图将内容解析为 XML。我怎样才能停止这种解析?如何将内容作为一个大字符串获取,以便我自己解析它?
[WebMethod]
//HOWTO? suppress XML parsing
public void UpdateStatus()
{
// HOWTO? get content as string
// parse string as YAML
// ...
}
更新:好的,如果我使用常规的 .aspx 页面,如何将原始 POST 内容作为字符串获取?
更新2:我可以得到文字:
Stream s = Request.InputStream;
byte[] buffer = new byte[s.Length];
s.Read(buffer, 0, (int)s.Length);
String content = bytesToString(buffer);
......但它搞砸了。yaml 的开头行是:
---
:video:
:thumbnail: bac01bf0-503a-012b-1406-123138002145.flv_thumb.jpg
:duration: 15900
...等等,但在我的字符串中,这变成:
video=---%20%0a%3avideo%3a%20%0a%20%20%3athumbnail%3a%20bac01bf0-503a-012b-1406-123138002145.flv_thumb.jpg%0a%20%20%3aduration%3a%2015900
当我只想要原始的东西时,似乎 ASP 正在“参数化” POST 正文。这与mime类型有关吗?