質問

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を使用して、独自の解析を実行します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top