Utiliser le service Web REST YAML dans ASP.NET
Question
J'utilise PandaStream, qui envoie une notification REST en tant que YAML à notre application ASP.NET. Le service Web que je possède et étouffe et renvoie 500 car il tente d'analyser le contenu au format XML. Comment puis-je arrêter cette analyse? Comment puis-je obtenir le contenu simplement comme une grosse chaîne afin de pouvoir l'analyser moi-même?
[WebMethod]
//HOWTO? suppress XML parsing
public void UpdateStatus()
{
// HOWTO? get content as string
// parse string as YAML
// ...
}
UPDATE: OK, si j'utilise une page .aspx normale, comment puis-je obtenir le contenu brut de POST sous forme de chaîne?
UPDATE 2: Je peux obtenir le texte:
Stream s = Request.InputStream;
byte[] buffer = new byte[s.Length];
s.Read(buffer, 0, (int)s.Length);
String content = bytesToString(buffer);
... mais ça se casse. Les premières lignes du yaml sont les suivantes:
---
:video:
:thumbnail: bac01bf0-503a-012b-1406-123138002145.flv_thumb.jpg
:duration: 15900
... et ainsi de suite, mais dans ma chaîne, cela devient:
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
Il semble que l'ASP soit "paramétrable". le corps POST quand je veux juste le truc brut. Est-ce quelque chose à voir avec le type mime?
La solution
Les services Web ASMX ne peuvent traiter SOAP qu'en entrée. Si vous devez lire un autre format, vous ne devez pas utiliser de service Web ASMX.
Utilisez simplement une page normale ou un gestionnaire HttpHandler et effectuez votre propre analyse.