L'API Web ASP.NET utilizza la negoziazione del contenuto per deserializzare automaticamente una richiesta HTTP in entrata in una classe del modello. Immediatamente, questo funzionerà con qualsiasi messaggio XML, JSON o wwww-form-urlencoded.
public class ComputerController : ApiController
{
public void Post(ComputerInfo computer)
{
// use computer argument
}
}
creare una classe modello che associa le proprietà del XML.
public class ComputerInfo
{
public string Processor { get; set; }
public string HardDrive { get; set; }
}
Questo XML in entrata sarebbero deserializzata per idratare il parametro del computer nel metodo Post.
<ComputerInfo>
<Processor>AMD</Processor>
<HardDrive>Toshiba</HardDrive>
</ComputerInfo>
Se per qualsiasi motivo si desidera leggere e analizzare il codice XML in entrata manualmente, è possibile farlo in questo modo
string incomingText = this.Request.Content.ReadAsStringAsync().Result;
XElement incomingXml = XElement.Parse(incomingText);
Uso ReadAsStreamAsync e carico è una scelta migliore rispetto ReadAsString e Parse. –
@DarrelMiller Perché è quello? – Despertar
Poiché ReadAsString può scegliere una codifica di stringa diversa da quella definita nel documento XML. –