در این مقاله قصد دارم راجعبه یک Extension در دات نت صحبت کنم که خیلی وقتها میتواند بسیار مفید و نجات بخش و همینطور در زمان کارتان تاثیر زیادی بگذارد. خیلی وقتها پیش آمده که داریم با یک سرویس بیرونی ارتباط برقرار میکنیم، اما هنگام فراخوانی کردن، با خطا مواجه میشویم و ما متوجه دلیل خطای رخ داده در آن لحظه نمیشویم. برای خود من بارها پیش آمده که Propertyهای اطلاعات ورودی برای وب سرویس را بصورت Pascal Case داده باشم، ولی سرویس بیرونی فق ...
دات نت 6 به همراه source generatorهای توکاری است که میتوانند کار serialization و deserialization نوع JSON را با کارآیی بسیار بیشتری انجام دهند؛ با آزمایشهایی که این بهبود را در حد 40 درصد سریعتر نسبت به حالت متداول آن نمایش میدهند و ... این مساله بسیار مهم است. از این جهت که این روزها، JSON را در همهجا مشاهده میکنیم؛ در Web APIها، در تنظیمات برنامهها، در ارسال پیامها بین برنامهها و غیره. بنابراین هرگونه بهبودی در زمینهی کارآیی se ...
زمانیکه قرار است با فایلهای باینری واقع در سمت سرور کار کنیم، اگر اکشن متدهای ارائه دهندهی آنها محافظت شده نباشند، برای نمایش و یا دریافت آنها تنها کافی است از آدرس مستقیم این منابع استفاده کرد و در این حالت نیازی به رعایت هیچ نکتهی خاصی نیست. اما اگر اکشن متدی در سمت سرور توسط فیلتر Authorize محافظت شده باشد و روش محافظت نیز مبتنی بر کوکیها نباشد، یعنی این کوکیها در طی درخواستهای مختلف، به صورت خودکار توسط مرورگر به سمت سرور ارسال ...
از زمان Blazor 5x، امکان آپلود فایل به صورت استاندارد به Blazor اضافه شدهاست که نمونهی Blazor Server آنرا پیشتر در مطلب « Blazor 5x - قسمت 17 - کار با فرمها - بخش 5 - آپلود تصاویر » مطالعه کردید. در تکمیل آن، روش آپلود فایلها در برنامههای WASM را نیز بررسی خواهیم کرد. این برنامه از نوع hosted است؛ یعنی توسط دستور dotnet new blazorwasm --hosted ایجاد شدهاست و به صورت خودکار دارای سه بخش Client، Server و Shared است. معرف ...
در قسمت قبل ، دسترسی به قسمتهایی از برنامهی کلاینت را توسط ویژگی Authorize و همچنین نقشهای مشخصی، محدود کردیم. در این مطلب میخواهیم اگر کاربری هنوز وارد سیستم نشدهاست و قصد مشاهدهی صفحات محافظت شده را دارد، به صورت خودکار به صفحهی لاگین هدایت شود و یا اگر کاربری که وارد سیستم شدهاست اما نقش مناسبی را جهت دسترسی به یک صفحه ندارد، بجای هدایت به صفحهی لاگین، پیام مناسبی را دریافت کند. هدایت سراسری و خودکار کاربران اعتبارسنجی ...
پیشتر بستهی نیوگتی به نام Microsoft.AspNet.WebApi.Client وجود داشت/دارد که کار آن ارائهی یک سری متد الحاقی کار با JSON، جهت HttpClient است. در نگارش 5 دات نت، تمام این متدهای الحاقی جزئی از دات نت استاندارد شدهاند و برای کار با آنها دیگر نیازی به استفادهی از بستههای نیوگت خاصی نیست. تغییرات API دات نت 5 از دیدگاه افزونههای HttpClient
در اینجا لیست کامل متدهای الحاقی اضافه شدهی به فضای نام جدید و استاندارد Syst ...
پیشتر مطلب « روش استفادهی صحیح از HttpClient در برنامههای دات نت » را مطالعه کرده بودید. پس از ارائهی NET Core 2.1.، این مجموعه به همراه یک IHttpClientFactory نیز ارائه میشود که در اینجا قصد داریم این مورد و همچنین سایر موارد مشابه را بررسی کنیم.
صورت مساله
قصد داریم اطلاعاتی را با فرمت JSON، از یک API خارجی، توسط HttpClient دریافت و سپس آنرا به یک DTO فرضی، به نام GitHubRepositor ...
پس از آشنایی با « نکات دریافت فایلهای حجیم توسط HttpClient »، در ادامه میتوان سه قابلیت مهم از سرگیری مجدد، لغو درخواست و سعی مجدد دریافت فایلهای حجیم را با HttpClient، همانند برنامههای download manager نیز پیاده سازی کرد. از سرگیری مجدد درخواست ارسالی توسط HttpClient
یک نمونه از سرگیری مجدد درخواست را در مطلب « اضافه کردن قابلیت از سرگیری مجدد (resume) به HttpWebRequest » پیشتر در این سایت مطالعه کردهاید. اصول کلی ...
HttpClient به عنوان جایگزینی برای HttpWebRequest API قدیمی، به همراه NET 4.5. ارائه شد و هدف آن یکپارچه کردن پیاده سازیهای متفاوت موجود به همراه ارائه راهحلی چندسکویی است که از WPF/UWP ، ASP.NET تا NET Core. و iOS/Android را نیز پشتیبانی میکند. تمام قابلیتهای جدید پروتکل HTTP مانند HTTP/2 نیز از این پس تنها به همراه این API ارائه میشوند.
در مطلب « روش استفادهی صحیح از HttpClient در برنامههای دات نت » با روش استفادهی تک وه ...
اگر در کدهای خود قطعه کد ذیل را دارید: using(var client = new HttpClient())
{
// do something with http client
}
استفادهی از using در اینجا، نهتنها غیرضروری و اشتباه است، بلکه سبب از کار افتادن زود هنگام برنامهی شما با صدور استثنای ذیل خواهد شد: Unable to connect to the remote server
System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permit ...