Question

I'm using PandaStream, which sends a REST notification as YAML to our ASP.NET app. The web service I have chokes and returns 500 because it attempts to parse the content as XML. How can I stop this parsing? How do I get the content as just a big string so I can parse it myself?

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

UPDATE: OK, if I use a regular .aspx page, how do I get the raw POST content as a string?

UPDATE 2: I can get the text:

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

...but it gets screwed up. The opening lines of the yaml are:

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

...and so on, but in my string this becomes:

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

It seems ASP is "parameterizing" the POST body when I just want the raw stuff. Is this something to do with the mime type?

Was it helpful?

Solution

ASMX Web Services can only process SOAP on input. If you need to read some other format, then you need to not be using an ASMX web service.

Just use a normal page, or an HttpHandler, and do your own parsing.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top