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


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

مقدمه‌ای بر درخواست‌های HTTP




درخواست‌های HTTP، پروتکل‌هایی هستند که به کلاینت‌ها امکان می‌دهند با سرور ارتباط برقرار کرده و داده‌ها را درخواست یا ارسال کنند. درخواست‌های GET برای بازیابی اطلاعات از سرور طراحی شده‌اند، در حالی که درخواست‌های POST برای ارسال داده‌های پیچیده و ثبت اطلاعات جدید مورد استفاده قرار می‌گیرند.
این دو نوع درخواست، تفاوت‌های مهمی در نحوه ساختار و کاربرد دارند. درخواست GET، معمولا پارامترهای خود را در URL قرار می‌دهد و محدودیت‌هایی در حجم داده دارد، در حالی که درخواست POST، داده‌ها را در بدنه درخواست قرار می‌دهد و امکان ارسال حجم زیادی از داده‌ها را فراهم می‌کند.

ابزارهای موجود در دات نت برای ارسال درخواست‌های HTTP




در دات نت، دو کتابخانه اصلی برای این منظور وجود دارد: `HttpClient` و `WebRequest`. اما از نسخه‌های جدیدتر، مثلا در دات نت فریم‌ورک
  1. 5 و بالاتر، پیشنهاد می‌شود از `HttpClient` استفاده کنید، چون ساده‌تر، سریع‌تر و قابل اطمینان‌تر است. در عوض، `WebRequest` هم قدیمی‌تر است و گاهی در پروژه‌های قدیمی‌تر دیده می‌شود.
    در ادامه، به صورت جداگانه، نحوه نوشتن کدهای ارسال درخواست‌های GET و POST در C# و VB.NET را بررسی می‌کنیم.
    ---

    ارسال درخواست GET در C#




درخواست GET، معمولا برای بازیابی داده‌ها از سرور استفاده می‌شود. فرض کنید می‌خواهید یک درخواست GET به یک API خاص ارسال کنید و پاسخ آن را دریافت کنید.
csharp  

using System;

using System.Net.Http;

using System.Threading.Tasks;
class Program

{

static async Task Main()

{

string url = "https://jsonplaceholder.typicode.com/posts/1";
using (HttpClient client = new HttpClient())

{

try

{

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` ساخته شده است، سپس متد `GetAsync` برای ارسال درخواست GET فراخوانی می‌شود. پس از دریافت پاسخ، وضعیت صحت آن بررسی می‌شود و در صورت موفقیت، محتوا به صورت رشته خوانده و نمایش داده می‌شود.
---

ارسال درخواست POST در C#




حالا فرض می‌کنیم نیاز دارید داده‌های پیچیده‌تری مثل فرم‌ها یا اطلاعات JSON را به سرور بفرستید. در اینجا نمونه‌ای از درخواست POST آورده شده است:
csharp  

using System;

using System.Net.Http;

using System.Text;

using System.Threading.Tasks;
class Program

{

static async Task Main()

{

string url = "https://jsonplaceholder.typicode.com/posts";

var jsonData = "{\"title\": \"foo\", \"body\": \"bar\", \"userId\": 1}";
using (HttpClient client = new HttpClient())

{

var content = new StringContent(jsonData, Encoding.UTF8, "application/json");

try

{

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

response.EnsureSuccessStatusCode();

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

Console.WriteLine(responseBody);

}

catch (HttpRequestException e)

{

Console.WriteLine($"Err... ← ادامه مطلب در magicfile.ir