【问题标题】:How do I pass data to an ASP.NET WebAPI如何将数据传递给 ASP.NET WebAPI
【发布时间】:2012-04-27 08:34:47
【问题描述】:

我一直在 asp.net 网站上使用新的 WebAPI。我使用可以获取的简单字符串创建了一些示例。我正在查看我现在是否可以 POST 和 PUT 到服务。

我正在寻找如何将对象添加到请求中,然后我可以从 .net 3.5 控制台应用程序中 POST 或 PUT。我要发送的对象只是一个简单的 User 类,其中包含 Name、Surname 和 UserID。

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

【问题讨论】:

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


    【解决方案1】:

    使用 .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;
    }
    

    【讨论】:

      【解决方案2】:

      查看 NuGet 上的 HttpClient。这使得通过 http 做大多数事情变得容易。

      还有here's an example 使用它。

      【讨论】:

      • 此客户端是否适用于 .net 3.5(Winforms / Console / WPF / Silverlight)?
      • 据我所知,HttpClient(WCF Web Api 的一部分)是 .NET 4,但旧版本可用于 .net 3.5 - 请参阅 stackoverflow.com/questions/8257652/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 2019-02-22
      • 2018-05-01
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      相关资源
      最近更新 更多