Как отправить объект в мой веб-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);

   **// How do I send my employee object to the API?**
   HttpResponseMessage response = await client.GetAsync("api/mycontroller/myaction");
   if (response.IsSuccessStatusCode)
   {
      var someObject = await response.Content.ReadAsAsync<myObjectType>();
   }
}

1 ответ

Решение

То, что вам нужно сделать, это выполнить POST для конечной точки API и сериализовать ваш объект employee как объект json, например, так:

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;
}

На данный момент ваш существующий код просто выполняет запрос GET.

HttpResponseMessage response = await client.GetAsync("api/mycontroller/myaction");

Я настоятельно рекомендую вам взглянуть на эту статью, в которой четко показано, как вызывать конечную точку Web API через C#.

Надеюсь, это поможет.

Другие вопросы по тегам