Create Server Project
Create ASP.NET Web Application and Select Web API Project in Visual Studio.
Create Web API Controller
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);
}
}
}
}
Consume Web API from Console Application
Create Console Application Project in Visual Studio.
Create DemoRestClientModel
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;
}
}
}
}
Run It
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
Output from Client
Status Code: OK
IsSuccessStatusCode: True
Output from Server
New Product Information
Id: p01
Name: name 1
Price: 12.0