Saya memiliki tipe kompleks khusus yang ingin saya kerjakan menggunakan API Web.
public class Widget
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Dan inilah metode pengontrol API web saya. Saya ingin memposting objek ini seperti ini:
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;
}
}
Dan sekarang saya ingin menggunakan System.Net.HttpClient
untuk memanggil metode tersebut. Namun, saya tidak yakin jenis objek apa yang akan diteruskan ke dalam PostAsync
metode, dan bagaimana membangunnya. Berikut beberapa contoh kode klien.
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();
});
Bagaimana cara membuat HttpContent
objek sedemikian rupa sehingga web API akan memahaminya?