Ich habe einen benutzerdefinierten komplexen Typ, mit dem ich mithilfe der Web-API arbeiten möchte.
public class Widget
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Und hier ist meine Web-API-Controller-Methode. Ich möchte dieses Objekt so posten:
public class TestController : ApiController
{
// POST /api/test
public HttpResponseMessage<Widget> Post(Widget widget)
{
widget.ID = 1; // hardcoded for now. TODO: Save to db and return newly created ID
var response = new HttpResponseMessage<Widget>(widget, HttpStatusCode.Created);
response.Headers.Location = new Uri(Request.RequestUri, "/api/test/" + widget.ID.ToString());
return response;
}
}
Und jetzt möchte ich System.Net.HttpClient
die Methode aufrufen. Ich bin mir jedoch nicht sicher, welche Art von Objekt an die PostAsync
Methode übergeben werden soll und wie sie erstellt werden soll. Hier ist ein Beispiel für einen Client-Code.
var client = new HttpClient();
HttpContent content = new StringContent("???"); // how do I construct the Widget to post?
client.PostAsync("http://localhost:44268/api/test", content).ContinueWith(
(postTask) =>
{
postTask.Result.EnsureSuccessStatusCode();
});
Wie erstelle ich das HttpContent
Objekt so, dass die Web-API es versteht?