DEV Community

MustafaSamedYeyin
MustafaSamedYeyin

Posted on

3 1

Asp.net core Http Request HttpClientFactory Giriş.

Bu serinin bir önceki yazısında HttpClient dependency injection olarak geçtik. Bir önceki yazımızdaki yöntemdeki kod çalışır ama tercih edilmemesi gereken bir yöntemdir. HttpClient oluşturacaksak aşağıdaki yöntemler ile oluşturmalıyız :

1.) IHttpClientFactory di olarak kullanmak.
2.) Named HttpClient Factories
3.) Typed HttpClient Factories

Not : Neden HttpClientFactory var diye merak ederserniz aşağıdaki post'ları okuyabilirsiniz :

https://www.aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/
https://www.stevejgordon.co.uk/introduction-to-httpclientfactory-aspnetcore
https://www.danieldonbavand.com/httpclientfactory-net-core-2-1/

Şimdi gelelim nasıl doğru bir şekilde Http Request yapabileceğimize :

1.) IHttpClientFactory di olarak kullanmak.

Öncelikle şu linkteki yazıyı okuyalım : https://dev.to/mustafasamedyeyin/aspnet-core-http-request-giris-132a

Linkteki bütün adımları tamamlayalım çünkü linkteki örneğin devamı yapacağız.

a.) IHttpClientFactory kullanmak için yapacaklarımız çok basit :

WeatherForecastService'de HttpClient olan yerleri IHttpClientFactory olarak değişteceğiz. Daha sonra _httpClient üzerinden CreateClient() metodumuzu çağırıp get,post,put,delete işlemlerini istediğimiz gibi yapabiliriz.

WeatherForecastService.cs class'ımızı aşağıdaki gibi değiştirelim

public class WeatherForecastService
    {
        private readonly IHttpClientFactory _httpClient; //Burası değiştirildi
        public WeatherForecastService(IHttpClientFactory httpClient)//Burası değiştirildi
        {
            _httpClient = httpClient;
        }
        public async Task<string> GetWeatherForecast()
        {

            var response = await _httpClient.CreateClient()//Burası değiştirildi
                .GetAsync(@"https://localhost:5001/WeatherForecast");

            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }
            else
            {
                return "Yanlış bir şeyler oldu.";
            }
        }
    }
Enter fullscreen mode Exit fullscreen mode

b.) Şimdi ilk başta api uygulamamızı "dotnet run" ile ayağa kaldıralım. Daha sonra mvc uygulamamızı "dotnet run" ile ayağı kaldıralım.

Gördüğünüz üzere :

Image description

Data'larımızı yine api'den getirebildik.

Bu yazıda "IHttpClientFactory di olarak kullanmak." yöntemini gördük. Bir sonraki yazımda "2.) Named HttpClient Factories" adlı başlığı inceleyeceğim.

Bir dahaki yazımda görüşmek dileğiyle.

En iyi dileklerim ile.

Mustafa Samed Yeyin.

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs