فراخوانی وب سرویس rest در c#

 فراخوانی وب سرویس rest در c#

سورس کد دات نت C# و VB.NET برای ارسال درخواست‌های HTTP به صورت GET و POST


در دنیای برنامه‌نویسی، ارسال درخواست‌های HTTP به سرورهای مختلف یکی از مهم‌ترین و پرکاربردترین عملیات‌ها است. این عملیات، به برنامه‌نویسان امکان می‌دهد تا داده‌ها را به سرور ارسال کنند، پاسخ‌ها را دریافت کنند، و ارتباط موثری بین کلاینت و سرور برقرار سازند. در این مقاله، قصد دارم به صورت کامل و جامع، نحوه نوشتن سورس کدهای مربوط به ارسال درخواست‌های HTTP در زبان‌های برنامه‌نویسی C# و VB.NET را شرح دهم، و تمرکز خاصی بر روی درخواست‌های GET و POST داشته باشم.
در ابتدا، باید درک کنیم که درخواست‌های HTTP چگونه کار می‌کنند و چه تفاوت‌هایی میان GET و POST وجود دارد. درخواست GET معمولا برای دریافت اطلاعات از سرور استفاده می‌شود، یعنی داده‌ها به صورت پارامترهای URL ارسال می‌گردند. این نوع درخواست، محدودیت‌هایی در حجم داده دارد اما در عوض سریع و ساده است. در مقابل، درخواست POST برای ارسال داده‌ها به سرور بکار می‌رود، و معمولا در عملیات‌هایی مانند ثبت فرم‌ها، آپلود فایل‌ها، و مواردی که حجم داده زیاد است، کاربرد دارد. درخواست POST از طریق بدنه درخواست (Request Body) داده‌ها را ارسال می‌کند، نه از طریق URL.

استفاده از کلاس HttpClient در دات نت




در نسخه‌های جدید دات نت، بهترین روش برای ارسال درخواست‌های HTTP، بهره‌گیری از کلاس `HttpClient` است. این کلاس، امکانات قدرتمندی برای ساخت و مدیریت درخواست‌های HTTP در اختیار برنامه‌نویسان قرار می‌دهد، و از نظر کارایی و قابلیت اطمینان، بسیار بهتر از کلاس‌های قدیمی‌تر مانند `WebRequest` است.

نمونه کد C# برای درخواست GET




برای شروع، فرض کنیم می‌خواهیم یک درخواست GET ساده به یک API ارسال کنیم. این کار با ساختن یک شیء `HttpClient` و فراخوانی متد `GetAsync` انجام می‌شود. در ادامه نمونه کد آن را مشاهده می‌کنید:
csharp  

using System;

using System.Net.Http;

using System.Threading.Tasks;
class Program

{

static async Task Main(string[] args)

{

using (HttpClient client = new HttpClient())

{

try

{

// آدرس URL مورد نظر

string url = "https://jsonplaceholder.typicode.com/posts/1";
// ارسال درخواست GET

HttpResponseMessage response = await client.GetAsync(url);

response.EnsureSuccessStatusCode();
// خواندن محتوای پاسخ

string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);

}

catch (HttpRequestException e)

{

Console.WriteLine($"Error: {e.Message}");

}

}

}

}


در این نمونه، ابتدا یک شیء `HttpClient` ساخته شده است. سپس، درخواست GET به URL موردنظر ارسال می‌شود. پس از دریافت پاسخ، بررسی می‌کنیم که وضعیت درخواست موفق است یا خیر. در صورت موفقیت، محتوا را به صورت رشته‌ای می‌خوانیم و نمایش می‌دهیم.

نمونه کد C# برای درخواست POST




حالا فرض کنید می‌خواهید داده‌ای را به سرور ارسال کنید. درخواست POST این قابلیت را دارد که داده‌ها را در بدنه درخواست قرار دهد. در مثال زیر، یک درخواست POST به یک API فرضی ارسال می‌کنیم، و داده‌ها را به صورت JSON در بدنه قرار می‌دهیم:
csharp  

using System;

using System.Net.Http;

using System.Text;

using System.Threading.Tasks;
class Program

{

static async Task Main(string[] args)

{

using (HttpClient client = new HttpClient())

{

try

{

string url = "https://jsonplaceholder.typicode.com/posts";
var jsonData = new StringContent(

"{\"title\": \"foo\", \"body\": \"bar\", \"userId\": 1}",

Encoding.UTF8,

"application/json"

);
HttpResponseMessage response = await client.PostAsync(url, jsonData);

response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);

}

catch (HttpRequestException e)

{

... ← ادامه مطلب در magicfile.ir
باکس دانلود ( فراخوانی وب سرویس rest در c#)
دانلود

پیشنهاد برای دانلود ( فراخوانی وب سرویس rest در c# )

برای دانلود کردن اینجا را کلیک فرمایید

نظرات کاربران (۳)

مریم احمدی

عالی بود .. با تشکر