如何将一个对象发送到我的 Web API?

17 浏览
0 Comments

如何将一个对象发送到我的 Web API?

我刚刚构建了我的第一个ASP.NET Web API。我现在正试图发送一个对象到我的API,但不确定该如何做。

以下是我的代码:

Employee employee = new Employee();
employee.Id = 1234;
employee.FirstName = "John";
employee.LastName = "Smith";
using (var client = new HttpClient())
{
   client.BaseAddress = new Uri("http://myapi.mydomain.com");
   client.DefaultRequestHeaders.Accept.Clear();
   client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
   client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token.AccessToken);
   **// 我该如何将员工对象发送到API?**
   HttpResponseMessage response = await client.GetAsync("api/mycontroller/myaction");
   if (response.IsSuccessStatusCode)
   {
      var someObject = await response.Content.ReadAsAsync();
   }
}

0
0 Comments

问题的原因是现有的代码只是执行了一个GET请求,但需要将对象作为一个JSON对象进行POST到API端点。解决方法是通过C#调用Web API端点的方式,使用PostAsJsonAsync方法将对象序列化为JSON对象,并执行POST请求。具体代码如下:

var gizmo = new Product() { Name = "Gizmo", Price = 100, Category = "Widget" };
response = await client.PostAsJsonAsync("api/products", gizmo);
if (response.IsSuccessStatusCode)
{
    // Get the URI of the created resource.
    Uri gizmoUrl = response.Headers.Location;
}

同时,建议阅读这篇文章,它清楚地介绍了如何通过C#调用Web API端点。希望这对你有帮助。

0