درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من

    تا 75 درصد تخفیف ویژه شب یلدا بر روی کلیه محصولات وب سایت توسینسو فقط تا 30 آذر

    مانده تا پایان تخفیف ها

    تخفیف های وب سایت
    همه تخفیف ها

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      حسین احمدی
      امتیاز: 212242
      رتبه:3
      342
      253
      403
      2719
      حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ... پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 23 قسط خریداری کنید
      دوره آموزشی طراحی رابط کاربری با JavaFX
      دوره آموزشی طراحی رابط کاربری با JavaFX
      مدرس: حسام رسولیان
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی Exploit نویسی به زبان Perl
      دوره آموزشی Exploit نویسی به زبان Perl
      مدرس: ایمان جوادی
      این دوره را در 7 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      مدرس: ایمان جوادی
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 78 قسط خریداری کنید
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 18 قسط خریداری کنید
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      مدرس: امیر حسین فضلیخانی
      این دوره را در 12 قسط خریداری کنید
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 27 قسط خریداری کنید
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      مدرس: کاظم تقندیکی
      این دوره را در 11 قسط خریداری کنید
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      مدرس: مهدی عادلی فر
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      مدرس: کاظم تقندیکی
      این دوره را در 20 قسط خریداری کنید
      دوره آموزشی ساخت ربات تلگرام
      دوره آموزشی ساخت ربات تلگرام
      مدرس: کاظم تقندیکی
      این دوره را در 8 قسط خریداری کنید

      برنامه نویسی شبکه (Network Programming) در سی شارپ :: آشنایی با کلاس HttpClient

      تاریخ 12 ماه قبل
      نظرات 1
      بازدیدها 164
      یکی از مباحث در زبان های برنامه نویسی مختلف و البته زبان برنامه نویسی سی شارپ برنامه نویسی شبکه است که بوسیله آن می توان در خواست ها را در محیط شبکه ارسال کرد و پاسخ آن را دریافت کرد. برنامه هایی مثل برنامه های ارسال فایل در محیط شبکه، برنامه های گفتگوی آنلاین و ... از جمله برنامه هایی هستند که تحت برنامه نویسی شبکه یا Network Programming قرار میگیرند. در زبان سی شارپ فضای از نام System.Net برای برنامه نویسی شبکه استفاده می شود و کلاس هایی که در این فضای نام و فضاهای نام زیر مجموعه آن قرار دارند به شما کمک می کنند تا بتوانید عملیات هایی که در محیط شبکه باید انجام شوند را پیاده سازی کنید. کلاس های فضای نام System.Net به دو دسته تقسیم می شوند، فضای نام System.Net.Sockets که دسترسی سطح پایین را به عملیات های تحت شبکه در اختیار برنامه نویسی می گذارد و خود فضای نام System.Net که کلاس های سطح بالاتری را در اختیار ما قرار می دهند.

      در این مطلب قصد داریم با کلاس HttpClient که در فضای نام System.Net.Http قرار گرفته و برای ارسال درخواست های HTTP و دریافت پاسخ های مبتنی بر آن استفاده می شود آشنا شویم. کلاس HttpClient از کلاس HttpMessageInvoker مشتق شده است که این اجازه را به می دهد تا درخواست ها را به صورت Async ارسال کنیم. به عنوان اولین مثال، در نمونه کد زیر درخواستی به وب سایت ITPro ارسال شده و نتیجه آن را خوانده و در خروجی نمایش می دهیم:

      static void Main(string[] args)
      {
          GetITProData();
      }
      
      public static async void GetITProData()
      {
          var httpClient = new System.Net.Http.HttpClient();
          var response = await httpClient.GetAsync("https://tosinso.com");
          var result = await response.Content.ReadAsStringAsync();
          Console.WriteLine(result);
      }
      

      همانطور که در کد بالا مشاهده می کنید ابتدا یک شئ از کلاس HttpClient ایجاد کردیم و سپس بوسیله دستور GetAsync درخواستی به سمت آدرس وب سایت ITPro ارسال کردیم، خروجی متد GetAsync شئ ای از نوع HttpResponseMessage است که این شئ خصوصیتی دارد به نام Content، خصوصیت Content از نوع HttpContent است که می توان بوسیله آن نتیجه ای که برای برگردانده شده را بخوانیم که در مثال بالا بوسیله متد ReadAsStringAsync جواب درخواست ارسال شده به سایت ITPro را در قالب رشته خوانده و در خروجی نمایش می دهیم.

      دقت کنید که GetAsync با توجه به نوع Reponse ای که سرور به سمت شما برمی گرداند خروجی متفاوتی ایجاد می کند، برای مثال خروجی کد بالا کدهای HTML خواهد بود، ممکن است شما درخواست را به سمت یک آدرس که نتیجه را در قالب json برمیگرداند ارسال کنید و نتیجه خروجی شما یک عبارت json باشد.

      ممکن است Reponse ای که برای شما ارسال می شود موفقیت آمیز نباشد، برای بررسی موفق بودن درخواست می توان از خصوصیت IsSuccessStatusCode در کلاس HttpResponseMessage استفاده کنید:

      var httpClient = new System.Net.Http.HttpClient();
      var response = await httpClient.GetAsync("https://tosinso.com");
      if (response.IsSuccessStatusCode)
      {
          var result = await response.Content.ReadAsStringAsync();
          Console.WriteLine(result);
      }
      


      مشخص کردن Header ها برای ارسال درخواست


      گاهی وقت ها برای ارسال درخواست به سمت سرور باید برای درخواست مورد نظر Header هایی را مشخص کرد، برای مثال، فرض کنید که قصد دارید به یک آدرس Api که توسط یک وب سایت ارائه شده یک درخواست ارسال کنید و می بایست به همراه درخواست در قالب Header ها Api Key ای که در اختیار شما قرار گرفته را مشخص کنید. برای مشخص کردن Header برای درخواست ارسالی می توانید از DefaultRequestHeaders استفاده کنید:

      var httpClient = new System.Net.Http.HttpClient();
      httpClient.DefaultRequestHeaders.Add("ApiKey","{your-api-key}");
      var response = await httpClient.GetAsync("https://api.tosinso.com/users/getall");
      if (response.IsSuccessStatusCode)
      {
          var result = await response.Content.ReadAsStringAsync();
          Console.WriteLine(result);
      }
      

      در نمونه کد بالا، فرض شده درخواست به آدرس انتخابی ارسال می شود و در Header درخواست ارسالی یک Header با نام ApiKey اضافه شده. (آدرس نوشته شده فرضیست)

      برای کلاس HttpClient متدهای دیگری نیز وجود دارد مانند PostAsync که امکان ارسال درخواست ها را در قالب POST امکان پذیر می کند که در یک مطلب جدگانه در مورد ارسال درخواست های POST صحبت خواهیم کرد.

      نویسنده: حسین احمدی
      منبع: ITpro
      برچسب ها
      ردیفعنوان
      1برنامه نویسی شبکه (Network Programming) در سی شارپ :: آشنایی با کلاس HttpClient
      2برنامه نویسی شبکه (Network Programming) در سی شارپ :: ارسال درخواست Post در کلاس HttpClient
      3برنامه نویسی شبکه (Network Programming) در سی شارپ :: کلاس های Uri و UriBuilder
      4برنامه نویسی شبکه (Network Programming) در سی شارپ :: کار با آدرس های IP و Dns
      5برنامه نویسی شبکه (Network Programming) در سی شارپ :: کلاس های TcpClient و TcpListener
      6برنامه نویسی شبکه (Network Programming) در سی شارپ :: پروتکل SMTP و ارسال ایمیل در سی شارپ
      دورهمجموعه کل دوره
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      • استاد لطفا این مقالات رو ادامه بدین
        ممنون

      برای ارسال نظر ابتدا به سایت وارد شوید