Domanda

Sto usando PandaStream, che invia una notifica REST come YAML alla nostra app ASP.NET. Il servizio web che ho soffocato e restituisce 500 perché tenta di analizzare il contenuto come XML. Come posso interrompere questa analisi? Come posso ottenere il contenuto solo come una grande stringa in modo da poterlo analizzare da solo?

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

AGGIORNAMENTO: OK, se utilizzo una normale pagina aspx, come posso ottenere il contenuto POST non elaborato come stringa?

AGGIORNAMENTO 2: posso ottenere il testo:

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

... ma viene rovinato. Le linee di apertura dello yaml sono:

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

... e così via, ma nella mia stringa questo diventa:

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

Sembra che ASP stia parametrizzando " il corpo POST quando voglio solo le cose grezze. È qualcosa a che fare con il tipo mime?

È stato utile?

Soluzione

I servizi Web ASMX possono elaborare SOAP solo in input. Se devi leggere un altro formato, non devi utilizzare un servizio web ASMX.

Usa semplicemente una pagina normale, o un HttpHandler, e fai il tuo analisi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top