Use POST Method in ASP.NET Web API


Create ASP.NET Web Application and Select Web API Project in Visual Studio.

Create Web API Controller have create method use insert new data

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http;
using Newtonsoft.Json;
using LearnASPNETWebAPIWithRealApps.Models;
using System.Diagnostics;

namespace LearnASPNETWebAPIWithRealApps.Controllers
{
    [RoutePrefix("api/demo")]
    public class DemoRestController : ApiController
    {

        [Route("create")]
        [HttpPost]
        public HttpResponseMessage create(Product product)
        {
            try
            {
                var response = new HttpResponseMessage(HttpStatusCode.OK);
                Debug.WriteLine("New Product Information");
                Debug.WriteLine("Id: " + product.Id);
                Debug.WriteLine("Name: " + product.Name);
                Debug.WriteLine("Price: " + product.Price);
                return response;
            }
            catch
            {
                return new HttpResponseMessage(HttpStatusCode.BadRequest);
            }
        }

    }
}




Create Console Application Project in Visual Studio.

DemoRestClientModel class contain methods call Web API

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threading.Tasks;
using System.Net.Http;
using System.Net.Http.Headers;
using LearnASPNETWebAPIWithRealApps_Client.Models;

namespace LearnASPNETWebAPIWithRealApps_Client
{
    public class DemoRestClientModel
    {
        private string BASE_URL = "http://localhost:64967/api/demo/";

        public Task<HttpResponseMessage> create(Product product)
        {
            try
            {
                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri(BASE_URL);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                return client.PostAsJsonAsync("create", product);
            }
            catch
            {
                return null;
            }
        }

    }
}
using LearnASPNETWebAPIWithRealApps_Client.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

namespace LearnASPNETWebAPIWithRealApps_Client
{
    class Program
    {
        static void Main(string[] args)
        {
            DemoRestClientModel demoRestClientModel = new DemoRestClientModel();

            Product product = new Product() {
                Id = "p01",
                Name = "name 1",
                Price = 12
            };
            HttpResponseMessage httpResponseMessage = demoRestClientModel.create(product).Result;

            HttpStatusCode httpStatusCode = httpResponseMessage.StatusCode;
            Console.WriteLine("Status Code: " + httpStatusCode);

            bool isSuccessStatusCode = httpResponseMessage.IsSuccessStatusCode;
            Console.WriteLine("IsSuccessStatusCode: " + isSuccessStatusCode);

            Console.ReadLine();
        }
    }
}




Output from Client

Status Code: OK
IsSuccessStatusCode: True

Output from Server

New Product Information
Id: p01
Name: name 1
Price: 12.0