-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HttpClient/Request problemi ve async/await kullanılamaması #74
Comments
Merhaba, Kendi client library'mizde bunu düzeltmiş bulunmaktayız. |
@akselarzuman selamlar. |
Biz bahsettiğiniz 2 numaralı sorunu canlıda yasıyoruz. @enerefe @akselarzuman Iyzipay yakın zamanda son bir versiyon çıkmış ancak eski yapı tamamen değişmiş gözüküyor. Bundan sonrası için Armut iyzipay projesi farklı bir yoldan ilerleyecek diyebilir miyiz? 1 numara için ise; iyzipay her request icin yeni bir httpClient üretiyor ve dispose etmiyor, armut.com ise ctor'da HttpClient üretiyor ve dispose etmiyor.
Kaynak: https://dotnet.microsoft.com/download/e-book/microservices-architecture/pdf |
Projeyi forklayıp bütün bu konuları gözden geçirerek yeniden yazdık. Kendi kullanımımız için yaptık fakat buraya da bırakmak istedim. Sadece .Net 5 sürümünü destekliyor. Birazcık değiştirdik :) İstek atılırken HttpClient harici nesneler cevap aldıktan sonra using statement'ı ile dispose ediliyor. Fakat HttpClient'ı tutan nesneyi manuel dispose etmeniz gerekli. Kullanım farklılıklarından dolayı çıkacak problemleri engellemek amaçlı bu şekilde yaptım. Gözünüze çarpan eksiklerimizi söylerseniz memnun oluruz. Umarım faydalı olur. |
Neredeyse 6 yıl geçmiş ama hala bir düzeltme yok ilgilenen de yok... |
Mevcut versiyondaki RestHttpClient objesi her request için yeniden bir HttpClient yaratıyor.
HttpClient objesi bir kere oluşturup çok sefer kullanmak için tasarlanmış bir nesne olmasından dolayı kullanıcıların canını sıkacak durumlar oluşabilir diye düşünüyorum. Bu konuda aşağıdaki linkler değerlendirilebilir.
Improper Instantiation antipattern
HttpClient per call in a Web API client
Ayrıca HttpClient'ın async fonksyionları Task.Result kullanılarak çağıran threadi bloklayacak şekilde kullanılmış. Buna alternatif olarak async/await kullanılması ASP.NET kullanıcılarına faydalı olacaktır diye düşünüyorum.
Async Programming : Introduction to Async/Await on ASP.NET
Task.Result Property
Async and Await
The text was updated successfully, but these errors were encountered: