0

我正在使用 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类型有关吗?

4

1 回答 1

1

ASMX Web 服务只能在输入上处理 SOAP。如果您需要阅读其他格式,则无需使用 ASMX Web 服务。

只需使用普通页面或 HttpHandler,然后进行自己的解析。

于 2009-10-26T01:15:23.203 回答