پرشین تم مقالات ارسال تصویر و داده های JSON با HttpClient در c#

ارسال تصویر و داده های JSON با HttpClient در c#

image profile پرشین تم - 05 دی 1403 - 03:33 دانلود مقاله

می‌توانید از HttpClient برای ارسال درخواست داده‌های multipart/form-data با هر دو بخش تصویر و داده JSON در سی شارپ استفاده کنید. در اینجا یک مثال گام به گام برای توضیح این موضوع آورده شده است:

ارسال تصویر و داده های JSON با HttpClient در c#

 

مثال: ارسال تصویر و JSON با استفاده از HttpClient

1. بسته NuGet مورد نیاز را نصب کنید:

مطمئن شوید که بسته System.Net.Http را نصب کرده اید. می توانید آن را از طریق NuGet Package Manager یا با اجرای دستور زیر در Package Manager Console نصب کنید:

Install-Package System.Net.Http

2. درخواست HttpClient را آماده کنید:

یک نمونه از HttpClient ایجاد کنید و محتوای multipart/form-data داده را آماده کنید:

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace YourNamespace
{
    class Program
    {
        static async Task Main(string[] args)
        {
            using (HttpClient client = new HttpClient())
            {
                // Create the multipart/form-data content
                using (var content = new MultipartFormDataContent())
                {
                    // Add the image file content
                    var imageContent = new ByteArrayContent(System.IO.File.ReadAllBytes("path_to_your_image.jpg"));
                    imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
                    content.Add(imageContent, "image", "image.jpg");
                    // Add the JSON content
                    var jsonObject = new { Name = "Sample", Description = "Sample Description" };
                    var jsonContent = new StringContent(JsonConvert.SerializeObject(jsonObject), System.Text.Encoding.UTF8, "application/json");
                    content.Add(jsonContent, "jsonPayload");
                    // Send the request
                    HttpResponseMessage response = await client.PostAsync("your_endpoint_url", content);
                    if (response.IsSuccessStatusCode)
                    {
                        Console.WriteLine("Success!");
                    }
                    else
                    {
                        Console.WriteLine($"Error: {response.StatusCode}");
                    }
                }
            }
        }
    }
}

توضیح:

1. نمونه HttpClient: یک نمونه HttpClient برای ارسال درخواست ایجاد کنید.

2. MultipartFormDataContent: یک نمونه MultipartFormDataContent برای نگهداری محتوای multipart/form-data ایجاد کنید.

3. محتوای تصویر: محتوای فایل تصویر را به عنوان ByteArrayContent اضافه کنید. هدر ContentType را روی نوع رسانه مناسب تنظیم کنید (به عنوان مثال، "image/jpeg").

4. محتوای JSON: یک شی JSON ایجاد کنید، آن را با استفاده از JsonConvert.SerializeObject() سریال کنید و آن را به عنوان StringContent با ContentType که روی "application/json" تنظیم شده است، اضافه کنید.

5. ارسال درخواست: از HttpClient.PostAsync() برای ارسال درخواست multipart/form-data استفاده کنید. وضعیت پاسخ را بررسی کنید تا مشخص شود آیا درخواست موفقیت آمیز بوده است یا خیر.

این مثال باید به شما کمک کند تا یک تصویر و داده JSON را با هم در یک درخواست HTTP POST ارسال کنید.

 

بیایید به نحوه ارسال درخواست POST فرم multipart/form-data با استفاده از HttpClient با یک تصویر و داده JSON عمیق تر بپردازیم. در اینجا یک مثال جامع تر است که همچنین شامل مدیریت خطا و نام فایل سفارشی برای آپلود تصویر است.

 

مثال جامع: ارسال تصویر و JSON با HttpClient

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace YourNamespace
{
    class Program
    {
        static async Task Main(string[] args)
        {
            using (HttpClient client = new HttpClient())
            {
                try
                {
                    // Create the multipart/form-data content
                    using (var content = new MultipartFormDataContent())
                    {
                        // Add the image file content
                        var imageFilePath = "path_to_your_image.jpg";
                        var imageContent = new ByteArrayContent(System.IO.File.ReadAllBytes(imageFilePath));
                        imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
                        content.Add(imageContent, "image", "custom_filename.jpg");
                        // Add the JSON content
                        var jsonObject = new { Name = "Sample", Description = "Sample Description" };
                        var jsonContent = new StringContent(JsonConvert.SerializeObject(jsonObject), System.Text.Encoding.UTF8, "application/json");
                        content.Add(jsonContent, "jsonPayload");
                        // Send the request
                        var response = await client.PostAsync("your_endpoint_url", content);
                        response.EnsureSuccessStatusCode();
                        // Read the response
                        var responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine("Response: " + responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("An error occurred: " + ex.Message);
                }
            }
        }
    }
}

توضیح:

1. نمونه HttpClient: یک نمونه HttpClient برای رسیدگی به درخواست ایجاد کنید.

2. MultipartFormDataContent: برای نگهداری داده های فرم، MultipartFormDataContent را راه اندازی کنید.

3. محتوای تصویر:

  • فایل تصویر را به صورت بایت بخوانید و یک ByteArrayContent ایجاد کنید.
  • نوع محتوا را روی image/jpeg تنظیم کنید.
  • آن را با یک نام فایل سفارشی (custom_filename.jpg) به محتوای چند قسمتی اضافه کنید.

4. محتوای JSON:

  • یک شی ایجاد کنید، آن را با استفاده از JsonConvert.SerializeObject() به JSON سریال کنید.
  • یک StringContent ایجاد کنید و نوع محتوای آن را روی application/json قرار دهید.
  • آن را با نام jsonPayload به محتوای چند قسمتی اضافه کنید.

5. ارسال درخواست:

  • از PostAsync برای ارسال درخواست چندبخشی/فرم-داده استفاده کنید.
  • اطمینان حاصل کنید که پاسخ با استفاده از () EnsureSuccessStatusCode نشان دهنده موفقیت است.
  • محتوای پاسخ را بخوانید و نمایش دهید.

6. مدیریت خطا: منطق را در یک بلوک try-catch بپیچید تا هرگونه استثنای احتمالی را مدیریت کنید.

 

سفارشی کردن درخواست

  • مسیرهای فایل: مطمئن شوید که مسیر فایل تصویر درست است.
  • انواع محتوا: انواع محتوا را در صورت نیاز برای انواع مختلف فایل تنظیم کنید (به عنوان مثال، "image/png" برای تصاویر PNG).
  • نشانی اینترنتی نقطه پایانی: «your_endpoint_url» را با نشانی اینترنتی نقطه پایانی API واقعی جایگزین کنید.

این باید یک مثال قوی از ارسال تصویر و داده JSON در یک درخواست HTTP POST با استفاده از HttpClient به شما ارائه دهد.

با خرید اشتراک می توانید تا چندین برابر مبلغ خرید اشتراک خود قالب های HTML ، سورس کدهای آماده و یا مقالات دانلود کنید
شما می توانید تنها فقط با مبلغ 3,000,000 میلیون تومان وب سایت سفارسی برای خود داشته باشید
محبوب ترین مقالات
تفاوت بین CSS و SCSS چیست؟ تفاوت بین CSS و SCSS چیست؟
category برنامه نویسی 07 اسفند 1402
تفاوت بین RDBMS و DBMS تفاوت بین RDBMS و DBMS
category برنامه نویسی 02 فروردین 1403
کاوش در معماری GPT-3 کاوش در معماری GPT-3
category هوش مصنوعی 12 اسفند 1402
کلمات کلیدی در SQL کلمات کلیدی در SQL
category برنامه نویسی 01 خرداد 1403
تفاوت بین CSS، SASS و SCSS چیست؟ تفاوت بین CSS، SASS و SCSS چیست؟
category برنامه نویسی 13 اسفند 1402
ChatGPT چیست؟ ChatGPT چیست؟
category هوش مصنوعی 12 اسفند 1402
انواع Join در SQL انواع Join در SQL
category برنامه نویسی 02 فروردین 1403
آخرین مقالات
آموزش کامل و جامع Git آموزش کامل و جامع Git Git یک سیستم کنترل نسخه قدرتمند که برای مدیریت و ردیابی تغییرات در کد شما ضروری است. ما در این آموزش اصول اولیه را پوش...
category برنامه نویسی 21 دی 1403
React چیست؟ آشنایی با اصول و تاریخچه React React چیست؟ آشنایی با اصول و تاریخچه React React که با نام‌های React.js یا ReactJS نیز شناخته می‌شود، یک کتابخانه جاوا اسکریپت برای ساخت رابط‌های کاربری است که ت...
category برنامه نویسی 19 دی 1403
معرفی React و سرفصل های دوره آموزش React معرفی React و سرفصل های دوره آموزش React React یک کتابخانه محبوب جاوا اسکریپت است که برای ساخت رابط های کاربری، به ویژه برنامه های تک صفحه ای استفاده می شود. ا...
category برنامه نویسی 19 دی 1403