Loading…

جزیره برنامه نویسی و توسعه نرم افزار

ارسال کننده: حسین احمدی
حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...
ارسال پیام خصوصی
امتیازات این مطلب
نکته: برنامه نویسی شبکه (Network Programming) در سی شارپ :: ارسال درخواست Post در کلاس HttpClient
در قسمت قبلی یک آشنایی اولیه با کلاس HttpClient پیدا کردیم و یاد گرفتیم که چگونه بوسیله متد GetAsync می توان در خواست هایی را در قالب GET به سمت سرور ارسال کرد و پاسخ آن را دریافت کرد. در کنار درخواست های GET در سی شارپ امکان ارسال در خواست های POST را نیز داریم. درخواست های POST بیشتر در مواقعی استفاده می شوند که شما قصد دارید یکسری اطلاعات را به سمت سرور ارسال کنید و در سمت سرور عملیاتی بر روی این اطلاعات انجام می شود، مثلاً عملیات ثبت نام در یک وب سایت بوسیله عملیات POST انجام می شود و کاربر اطلاعاتی را به سمت سرور ارسال کرده و اطلاعات او در بانک اطلاعاتی ذخیره می شود. برای ارسال درخواست های POST در زبان سی شارپ از متد PostAsync در کلاس HttpClient استفاده می کنیم. دقت کنید که این روش از نسخه 4.5 به بعد در دات نت قابل استفاده است. ابتدا یک شئ از کلاس HttpClient ایجاد می کنیم:

var httpClient = new System.Net.Http.HttpClient();

در قدم بعدی یک Dictionary برای اطلاعاتی که باید ارسال شوند ایجاد می کنیم. همانطور که اطلاع دارید برای ارسال درخواست های POST در صفحات وب می بایست یک Form ایجاد شود که این فرم در زمان ارسال به سمت سرور حاوی یک سری مقادیر به صورت Key Value Pair است که Key یا کلید نام مقدار ورودی و Value مقداری است که کاربر وارد کرده. برای مثال، در فرم ثبت نام که کاربر اطلاعاتی مانند نام کاربری، کلمه عبور و پست الکترونیکی را ارسال می کند این اطلاعات در قالب یک فرم که حاوی اطلاعات به صورت زیر است ارسال می شود:

Username=ITPro;Password=123;Email=test@itpro.ir

برای مشخص کردن مقادیر Form برای ارسال درخواست پست یک Dictionary حاوی مقادیر مورد نظر ایجاد می کنیم:

var httpClient = new System.Net.Http.HttpClient();
var formValues = new Dictionary<string, string>()
{
    ["Username"] = "ITPro",
    ["Password"] = "123",
    ["Email"] = "test@itpro.ir"
};

در قدم بعدی با ایجاد یک شئ از روی FormUrlEncodedContent دیکشنری ایجاد شده را به سازنده آن ارسال کرده و بوسیله متد PostAsync و به صورت زیر درخواست POST را ارسال می کنیم:

var httpClient = new System.Net.Http.HttpClient();
var formValues = new Dictionary<string, string>()
{
    ["Username"] = "ITPro",
    ["Password"] = "123",
    ["Email"] = "test@itpro.ir"
};
var formCollection = new FormUrlEncodedContent(formValues);
var response = await httpClient.PostAsync("https://domain.com/register", formCollection);
if (response.IsSuccessStatusCode)
{
    // write your code here
}

همانطور که مشاهده می کنید بوسیله کد بالا به راحتی می توان در خواست های POST را به راحتی به سمت یک سرور ارسال کرد، به همین خاطر فراموش نکنید که حتماً در فرم هایی که حساس هستند و امکان حمله به سمت آن ها وجود دارد حتماً از Captcha استفاده کنید.

نویسنده: حسین احمدی
منبع: ITpro
دیدگاه ها

هیچ دیدگاهی برای این مطلب ارسال نشده است

برای ارسال نظر وارد شوید.