我正在使用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类型有关吗?
答案 0 :(得分:1)
ASMX Web服务只能在输入时处理SOAP。如果您需要阅读其他格式,则需要不使用ASMX Web服务。
只需使用普通页面或HttpHandler,然后进行自己的解析。