ASP.NET Web API verwendet Content-Negotiation, um eine eingehende HTTP-Anforderung in eine Modellklasse deserialisieren. Standardmäßig funktioniert dies mit jeder XML-, JSON- oder wwww-form-urlencoded-Nachricht.
public class ComputerController : ApiController
{
public void Post(ComputerInfo computer)
{
// use computer argument
}
}
eine Modellklasse erstellen, die auf die Eigenschaften des XML abbildet.
public class ComputerInfo
{
public string Processor { get; set; }
public string HardDrive { get; set; }
}
Diese eingehende XML würde den Computer-Parameter in der Post-Methode, um Hydrat werden deserialisiert.
<ComputerInfo>
<Processor>AMD</Processor>
<HardDrive>Toshiba</HardDrive>
</ComputerInfo>
Wenn Sie aus irgendeinem Grund manuell lesen möchten und die eingehende XML zu analysieren, Sie so wie diese
string incomingText = this.Request.Content.ReadAsStringAsync().Result;
XElement incomingXml = XElement.Parse(incomingText);
Verwenden von ReadAsStreamAsync und Load ist eine bessere Option als ReadAsString und Parse. –
@DarrelMiller Warum ist das? – Despertar
Da ReadAsString eine andere Zeichencodierung als im XML-Dokument definiert auswählen kann. –