Merhaba arkadaşlar, bu yazımda sizlere .Net Core HttpClient POST Kullanımı konusundan bahsedeceğim.
Bir önceki yazımızda GET metodumuzu kullanarak ürün ve kategori listelemesi gerçekleştirdik. Bu yazıda ise POST metodumuzu çağırarak ürün ve kategori ekleme işlemlerini gerçekleştireceğiz. Ürün Ekleme ve Kategori Ekleme için metotlarımızı oluşturuyoruz.
Program.cs içerisinde metotlarımızı kullanacağız.
Öncelikle ürün eklemek için kodumuzu yazacağız.
Servis için yine HttpClient nesnesini kullanarak API isteklerimizi gerçekleştireceğiz.
private static void AddProduct()
{
using var httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:5000/");
ProductDto product = new ProductDto()
{
Name = "Client Test Ürün",
Description = "Client Test Ürün Açıklama",
Price = 1500,
CategoryId = 1
};
var serializeProduct = JsonSerializer.Serialize(product);
StringContent stringContent = new StringContent(serializeProduct, Encoding.UTF8, "application/json");
var result = httpClient.PostAsync("api/Products",stringContent).Result;
if (result.IsSuccessStatusCode)
Console.WriteLine("Ürün ekleme başarılı.");
else
Console.WriteLine($"Ürün eklenemedi. Hata Kodu: {result.StatusCode}");
}
AddProduct adında bir metot oluşturduk ve içerisinde HttpClient nesnesinin tanımını yaptık. Ürün bilgileri için ProductDto adında bir nesne oluşturduk ve ürün ile ilgili bilgileri burada doldurduk. Oluşturduğumuz bu nesneyi Json‘a çevirme işlemi yapmamız gerekiyor. Bunu yapmak için JsonSerializer ile Serialize metodunu kullanarak nesnemizi serialize ediyoruz. Serialize metodu oluşturduğumuz nesneyi bizim için Json string’e çevirdi ve sonrasında da StringContent nesnesini kullanarak oluşturduğumuz json stringi burada kullanıyoruz. Media Type olarak da “application/json” değerini belirtiyoruz. Bu işlemlerden sonra ise HttpClient nesnesindeki PostAsync metodumuzu çağırıp endpoint‘i ve oluşturduğumuz StringContent nesnesini parametre olarak veriyoruz. Result nesnemizde de başarılı kodlardan birisi dönüyor ise Ürün ekleme başarılı mesajını, başarılı değilse de Ürün eklenemedi mesajını ekrana yazdırma işlemini sağlıyoruz.
Şimdi de benzer şekilde kategori ekleme metodumuzu yazıyoruz.
private static void AddCategory()
{
using var httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:5000/");
CategoryDto category = new CategoryDto()
{
Name = "Client Test Kategori"
};
var serializeCategory = JsonSerializer.Serialize(category);
StringContent stringContent = new StringContent(serializeCategory, Encoding.UTF8, "application/json");
var result = httpClient.PostAsync("api/Categories", stringContent).Result;
if (result.IsSuccessStatusCode)
Console.WriteLine("Kategori ekleme başarılı.");
else
Console.WriteLine($"Kategori eklenemedi. Hata Kodu: {result.StatusCode}");
}
Metotlarımızı yazdıktan sonra da main metodu içerisinde oluşturduğumuz ekleme metotlarını çağırıyoruz.
static void Main(string[] args)
{
AddProduct();
AddCategory();
Console.Read();
}
Bir sonraki yazımda yazdığımız PUT metodunu çağırarak ürün ve kategori için güncelleme işlemlerini gerçekleştireceğiz.
Görüşmek üzere 🙂