ASP.NETでREST YAML Webサービスを使用する
質問
PandaStreamを使用しています。PandaStreamは、REST通知をYAMLとしてASP.NETアプリに送信します。コンテンツをXMLとして解析しようとするため、Webサービスはチョークして500を返します。この解析を停止するにはどうすればよいですか?自分で解析できるように、コンテンツを大きな文字列として取得するにはどうすればよいですか?
[WebMethod]
//HOWTO? suppress XML parsing
public void UpdateStatus()
{
// HOWTO? get content as string
// parse string as YAML
// ...
}
更新:OK、通常の.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タイプと関係がありますか?
解決
ASMX Webサービスは、入力時にのみSOAPを処理できます。他の形式を読む必要がある場合は、ASMX Webサービスを使用しないでください。
通常のページまたはHttpHandlerを使用して、独自の解析を実行します。
所属していません StackOverflow