Consumir o serviço web RESTO YAML em ASP.NET
Pergunta
Eu estou usando PandaStream, que envia uma notificação resto como YAML para a nossa aplicação ASP.NET. O serviço web eu tenho bobinas e retornos 500 porque ele tenta analisar o conteúdo como XML. Como posso parar esta análise? Como faço para obter o conteúdo como apenas uma grande corda para que eu possa analisá-lo eu mesmo?
[WebMethod]
//HOWTO? suppress XML parsing
public void UpdateStatus()
{
// HOWTO? get content as string
// parse string as YAML
// ...
}
UPDATE:? OK, se eu usar uma página aspx regular, como faço para obter o conteúdo POST crua como uma string
UPDATE 2: Eu posso obter o texto:
Stream s = Request.InputStream;
byte[] buffer = new byte[s.Length];
s.Read(buffer, 0, (int)s.Length);
String content = bytesToString(buffer);
... mas fica asneira. As linhas das yaml abertura são:
---
:video:
:thumbnail: bac01bf0-503a-012b-1406-123138002145.flv_thumb.jpg
:duration: 15900
... e assim por diante, mas na minha corda isto torna-se:
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 ASP é "parametrização" do corpo POST quando eu só quero a matéria-prima. Isto é algo a ver com o tipo mime?
Solução
ASMX Web Services só pode processar SABÃO na entrada. Se você precisa ler algum outro formato, então você precisa não estar usando um serviço ASMX web.
Basta usar uma página normal, ou um HttpHandler, e fazer sua própria análise.