【发布时间】:2012-05-05 12:00:09
【问题描述】:
我有一个想要使用 Web API 处理的自定义复杂类型。
public class Widget
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
这是我的 Web API 控制器方法。我想像这样发布这个对象:
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;
}
}
现在我想使用System.Net.HttpClient 来调用该方法。但是,我不确定将什么类型的对象传递给PostAsync 方法,以及如何构造它。这是一些示例客户端代码。
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();
});
如何以 Web API 可以理解的方式创建 HttpContent 对象?
【问题讨论】:
-
您是否尝试过将对象的 XML 序列化版本提交到服务端点?
标签: c# asp.net-web-api