تبدیل curl به C#

دستورات curl را با استفاده از HttpClient به کد C# تبدیل کنید. curl2code کاملاً در مرورگر شما از طریق WebAssembly اجرا می‌شود — داده‌های شما خصوصی می‌مانند. برای توسعه Java، مبدل curl به Java ما را امتحان کنید. برای TypeScript، curl به TypeScript را ببینید. در ادامه مثال‌های آماده C# آورده شده است.

نحوه کپی کردن curl از مرورگر

  1. 1

    باز کردن DevTools

    کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعه‌دهنده مرورگر باز شوند.

  2. 2

    رفتن به تب Network

    روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP می‌شود را انجام دهید.

  3. 3

    کپی به عنوان cURL

    روی درخواست راست‌کلیک کنید ← CopyCopy as cURL. سپس آن را در بالا جایگذاری کنید.

سوالات متداول

C# HttpClient چیست؟

کتابخانه HttpClient کلاینت HTTP مدرن و داخلی در .NET است. این کتابخانه به صورت بومی از async/await، HTTP/2، فشرده‌سازی خودکار و استخر اتصالات پشتیبانی می‌کند. از یک نمونه واحد HttpClient (یا IHttpClientFactory) در سراسر برنامه خود استفاده کنید تا از اتمام سوکت‌ها جلوگیری شود. این تنها کتابخانه پیش‌فرضی است که curl2code برای تبدیل‌های C# استفاده می‌کند.

HttpClient در مقابل WebClient در مقابل HttpWebRequest — از کدام استفاده کنیم؟

HttpClient استاندارد مدرن است — همیشه برای پروژه‌های جدید .NET از آن استفاده کنید. WebClient و HttpWebRequest قدیمی هستند و نباید در کد جدید استفاده شوند. HttpClient پشتیبانی ناهمگام، عملکرد بهتر و API تمیزتری ارائه می‌دهد. برای کلاینت‌های مدرن مشابه، curl به Java یا curl به Go را ببینید.

چگونه احراز هویت را در C# مدیریت کنیم؟

هدر را تنظیم کنید: client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token). برای Basic auth، اعتبارنامه‌ها را انکود کرده و هدر را تنظیم کنید. احراز هویت برای هر درخواست از request.Headers.Authorization استفاده می‌کند. curl2code فلگ‌های -u و -H 'Authorization' را تشخیص داده و کد صحیح C# را تولید می‌کند.

چگونه داده‌های فرم چندبخشی را در C# ارسال کنیم؟

از MultipartFormDataContent استفاده کنید: StringContent را برای فیلدها و StreamContent را با ContentDisposition برای فایل‌ها اضافه کنید. محتوای چندبخشی را به PostAsync(url, content) پاس دهید. مرز Content-Type به طور خودکار تنظیم می‌شود. curl2code فلگ‌های -F را به این الگو تبدیل می‌کند.

چگونه خطاهای HTTP را در C# مدیریت کنیم؟

response.EnsureSuccessStatusCode() را فراخوانی کنید تا در صورت وضعیت غیر 2xx، خطای HttpRequestException پرتاب شود. یا response.IsSuccessStatusCode و response.StatusCode را به صورت دستی چک کنید. در try/catch برای HttpRequestException، TaskCanceledException (مهلت زمانی) و OperationCanceledException قرار دهید.

چگونه از async/await با HttpClient استفاده کنیم؟

کتابخانه HttpClient بر اساس طراحی ناهمگام است — تمام متدها Task برمی‌گردانند: var response = await client.GetAsync(url). از await response.Content.ReadAsStringAsync() برای بدنه استفاده کنید. برای درخواست‌های موازی، از Task.WhenAll() استفاده کنید. هرگز از .Result یا .Wait() استفاده نکنید — آن‌ها می‌توانند باعث بن‌بست (deadlock) شوند. برای الگوهای ناهمگام مشابه، curl به TypeScript را ببینید.

چگونه مهلت زمانی را در C# HttpClient تنظیم کنیم؟

مقدار client.Timeout = TimeSpan.FromSeconds(30) را برای مهلت زمانی کلی تنظیم کنید. برای کنترل در هر درخواست، از CancellationTokenSource با یک مهلت زمانی استفاده کنید: new CancellationTokenSource(TimeSpan.FromSeconds(10)). برای تلاش‌های مجدد، از کتابخانه Polly یا IHttpClientFactory با سیاست‌های تلاش مجدد استفاده کنید.

چگونه یک پروکسی را در C# پیکربندی کنیم؟

یک HttpClientHandler با پروکسی ایجاد کنید: handler.Proxy = new WebProxy("http://proxy:8080"). هندلر را به new HttpClient(handler) پاس دهید. برای دور زدن پروکسی برای آدرس‌های محلی، handler.Proxy.BypassProxyOnLocal = true را تنظیم کنید. curl2code فلگ‌های -x و --proxy را به این تنظیمات تبدیل می‌کند.

چگونه یک درخواست POST با بدنه JSON در C# ارسال کنیم؟

یک دستور curl POST مانند curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL را با استفاده از curl2code به C# تبدیل کنید. کد تولید شده از new StringContent(json, Encoding.UTF8, 'application/json') استفاده می‌کند. curl2code به طور خودکار فلگ‌های -d/--data با محتوای JSON را تشخیص داده و هدر Content-Type مناسب را در کد HttpClient تنظیم می‌کند.

چگونه احراز هویت با Bearer token را در C# اضافه کنیم؟

دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را به curl2code بدهید تا کد HttpClient را با هدر احراز هویت تولید کند: client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue('Bearer', token). curl2code توکن‌های Bearer را از هر دو فلگ -H "Authorization: Bearer ..." و --oauth2-bearer تشخیص می‌دهد. برای Basic auth، از -u user:pass استفاده کنید.

چگونه هدر Content-Type را در C# تنظیم کنیم؟

curl2code دستور curl -H "Content-Type: application/json" URL را به کد HttpClient با هدر مناسب تبدیل می‌کند: new StringContent(json, Encoding.UTF8, 'application/json'). برای داده‌های -d، دستور curl به طور پیش‌فرض از application/x-www-form-urlencoded استفاده می‌کند؛ برای آپلودهای فرم -F، از multipart/form-data استفاده می‌کند. curl2code هر کدام را به API صحیح HttpClient نگاشت می‌کند.

لینک‌های مفید

راهنماهای curl

تبدیل curl به زبان‌های دیگر