ASP.NET Web API używa negocjacji treści do automatycznego deserializowania przychodzących żądań http do klasy modelu. Po wyjęciu z pudełka będzie to działało z każdą wiadomością XML, JSON lub formularzem wwww-urlen.
public class ComputerController : ApiController
{
public void Post(ComputerInfo computer)
{
// use computer argument
}
}
utworzyć klasę modelu, który mapuje do właściwości XML.
public class ComputerInfo
{
public string Processor { get; set; }
public string HardDrive { get; set; }
}
Ten przychodzące XML będzie rozszeregować do uwodnienia parametr komputera w metodzie post.
<ComputerInfo>
<Processor>AMD</Processor>
<HardDrive>Toshiba</HardDrive>
</ComputerInfo>
Jeśli z jakiegoś powodu chcesz ręcznie czytać i analizować napływające XML, można zrobić tak jak to
string incomingText = this.Request.Content.ReadAsStringAsync().Result;
XElement incomingXml = XElement.Parse(incomingText);
Używanie ReadAsStreamAsync i ładowanie jest lepszą opcją niż ReadAsString i parsowanie. –
@DarrelMiller Dlaczego tak jest? – Despertar
Ponieważ ReadAsString może wybrać inne kodowanie ciągów niż zdefiniowano w dokumencie XML. –