یک برنامهٔ کنسولی C# بنویسید که فهرستی از آدرسهای وب (URL) را از کاربر دریافت کند، برای هر URL یک درخواست HTTP ارسال کند، وضعیت پاسخ را در کنسول چاپ کند و در صورت عدم دسترسی یا دریافت کد خطا از Console.Beep برای اعلام هشدار استفاده کند.
3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:36 0.0
برای حل مسئله از کلاس HttpClient (در System.Net.Http) استفاده کنید و برای خواندن ورودیها یک حلقه بسازید که URLها را از کنسول میگیرد؛ برای هر درخواست از async/await و timeout مناسب استفاده کرده و پاسخ را با Console.WriteLine نمایش دهید. در بلوکهای try/catch خطاها یا وضعیتهای غیر 2xx را تشخیص داده و با Console.Beep(frequency, duration) هشدار صوتی بدهید (توجه داشته باشید Console.Beep در برخی پلتفرمها رفتار متفاوتی دارد)، همچنین برای خودکارسازی میتوانید حلقه را در اسکریپتی زمانبندیشده اجرا کنید یا نتایج را در فایل لاگ ذخیره کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
ایدهٔ خوب استفاده از HttpClient برای هر URL و چاپ وضعیت پاسخ است، اما بهبود منابع با استفاده از یک HttpClient واحد در طول برنامه و یا IHttpClientFactory در برنامههای بزرگ توصیه میشود. همچنین بهتر است برای زمانبندی و قطع درخواستها از CancellationToken و timeout مشخص استفاده کنید تا از hanging جلوگیری شود. در نظر داشته باشید Console.Beep ممکن است روی پلتفرمهای مختلف صدا ندهد یا محدود باشد، پس بهعنوان هشدار صوتی اضافه به لاگ یا خروجی متنی هم فکر کنید. برای خواندن ورودیها میتوانید با یک حلقهٔ while (true) و شرط توقف (مثلاً ورود خالی) کار کنید و با try/catch خطاها را مدیریت کنید و با استفاده از Logging به فایل لاگ خروجی بگیرید.
گزارش