Вопрос

Я использую 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, когда я просто хочу сырье. Это как-то связано с типом пантомимы?

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top