Tôi có một loại phức hợp tùy chỉnh mà tôi muốn làm việc bằng cách sử dụng API Web.
public class Widget
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Và đây là phương pháp điều khiển API web của tôi. Tôi muốn đăng đối tượng này như vậy:
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;
}
}
Và bây giờ tôi muốn sử dụng System.Net.HttpClient
để gọi phương thức. Tuy nhiên, tôi không chắc loại đối tượng nào cần truyền vào PostAsync
phương thức và cách xây dựng nó. Đây là một số mã khách hàng mẫu.
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();
});
Làm cách nào để tạo HttpContent
đối tượng theo cách mà API web sẽ hiểu nó?