如何将数据传递给ASP.NET WebAPI

时间:2012-04-27 08:34:48

标签: c# http asp.net-web-api

我一直在asp.net网站上完成新的WebAPI。我使用简单的字符串创建了一些样本,我可以获取。我希望看看我现在是否可以POST并投入服务。

我希望看到我应该如何向请求中添加一个对象,然后我可以从.net 3.5控制台应用程序进行POST或PUT。我试图发送的对象只是一个带有Name,Surname和UserID的简单User类。

从我的测试看来,似乎我可以将其序列化并通过URI发送,但这似乎不太正确。我注意到这些请求有标题,我可以把数据放在那里吗?

2 个答案:

答案 0 :(得分:4)

使用.NET 3.5,我认为没有很多优雅的选项,但使用WebClient的代码可以工作(您需要添加对System.Web.Extensions的引用):

WebClient client = new WebClient();
JavaScriptSerializer serializer = new JavaScriptSerializer();
var data = serializer.Serialize(new {Name = "Ali", Title = "Ostad"});
client.Headers[HttpRequestHeader.ContentType] = "application/json";
var downloadString = client.UploadString("http://localhost:59174/api/values", data); // value is "Ali"

这是控制器动作:

// POST /api/values
public string Post(JsonValue value)
{
    return value.AsDynamic().Name;
}

答案 1 :(得分:1)

查看NuGet上的HttpClient。这使得通过http轻松完成大部分工作。

here's an example使用它。