Pregunta

Estoy usando PandaStream, que envía una notificación REST como YAML a nuestra aplicación ASP.NET. El servicio web tengo chokes y devuelve 500 porque intenta analizar el contenido como XML. ¿Cómo puedo parar este análisis? ¿Cómo obtengo el contenido como una cadena grande para poder analizarlo yo mismo?

[WebMethod]
//HOWTO? suppress XML parsing
public void UpdateStatus()
{
    // HOWTO? get content as string
    // parse string as YAML
    // ...
}

ACTUALIZACIÓN: OK, si uso una página .aspx normal, ¿cómo obtengo el contenido POST en bruto como una cadena?

ACTUALIZACIÓN 2: puedo obtener el texto:

Stream s = Request.InputStream;
byte[] buffer = new byte[s.Length];
s.Read(buffer, 0, (int)s.Length);
String content = bytesToString(buffer);

... pero se arruina. Las primeras líneas del yaml son:

--- 
:video: 
  :thumbnail: bac01bf0-503a-012b-1406-123138002145.flv_thumb.jpg
  :duration: 15900

... y así sucesivamente, pero en mi cadena esto se convierte en:

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

Parece que ASP está " parametrizando " El cuerpo POST cuando solo quiero las cosas en bruto. ¿Es esto algo que ver con el tipo mime?

¿Fue útil?

Solución

Los servicios web de ASMX solo pueden procesar SOAP en la entrada. Si necesita leer algún otro formato, entonces no debe usar un servicio web ASMX.

Solo usa una página normal, o un HttpHandler, y haz tu propio análisis.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top