Использование веб-службы REST YAML в ASP.NET - PullRequest
0 голосов
/ 26 октября 2009

Я использую PandaStream, который отправляет уведомление REST как YAML в наше приложение ASP.NET. Веб-сервис, который у меня есть, задыхается и возвращает 500, потому что он пытается проанализировать контент как 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, когда я просто хочу сырье. Это как-то связано с типом пантомимы?

1 Ответ

1 голос
/ 26 октября 2009

Веб-службы ASMX могут обрабатывать SOAP только при вводе. Если вам нужно прочитать какой-либо другой формат, вам не нужно использовать веб-сервис ASMX.

Просто используйте обычную страницу или HttpHandler и выполните свой собственный анализ.

...