تبدیل curl به PowerShell

دستورات curl را با استفاده از Invoke-RestMethod به کد PowerShell تبدیل کنید. curl2code کاملاً در مرورگر شما از طریق WebAssembly اجرا می‌شود — داده‌های شما خصوصی می‌مانند. برای C#، مبدل curl به C# ما را امتحان کنید. برای Python، curl به Python را ببینید. در ادامه مثال‌های آماده PowerShell آورده شده است.

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

  1. 1

    باز کردن DevTools

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

  2. 2

    رفتن به تب Network

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

  3. 3

    کپی به عنوان cURL

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

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

PowerShell Invoke-RestMethod چیست؟

Invoke-RestMethod یک cmdlet داخلی در PowerShell برای ایجاد درخواست‌های HTTP با پارس خودکار JSON/XML است. این دستور اشیاء پارس شده را مستقیماً برمی‌گرداند — نیازی به دی‌سریالیزاسیون دستی نیست. در PowerShell 3.0 به بالا و PowerShell Core در دسترس است. curl2code همچنین از Invoke-WebRequest که پاسخ خام را برمی‌گرداند، پشتیبانی می‌کند.

Invoke-RestMethod در مقابل Invoke-WebRequest — از کدام استفاده کنیم؟

Invoke-RestMethod به طور خودکار پاسخ‌های JSON/XML را به اشیاء PowerShell تبدیل می‌کند — برای کار با API ایده‌آل است. Invoke-WebRequest پاسخ کامل شامل هدرها، کد وضعیت و محتوای خام را برمی‌گرداند — برای دیباگ کردن و پاسخ‌های غیر JSON بهتر است. برای APIها از RestMethod و برای اسکرپینگ یا تشخیص خطا از WebRequest استفاده کنید. برای رویکرد مشابه در .NET، curl به C# را ببینید.

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

برای Bearer: Invoke-RestMethod -Uri $url -Headers @{ Authorization = "Bearer $token" }. برای احراز هویت Basic، از -Credential (Get-Credential) یا -Authentication Basic (در PowerShell 6+) استفاده کنید. PowerShell اعتبارنامه‌ها را با SecureString به صورت ایمن مدیریت می‌کند. curl2code فلگ‌های احراز هویت را به پارامترهای cmdlet در PowerShell تبدیل می‌کند.

چگونه داده‌های فرم multipart را در PowerShell ارسال کنیم؟

نسخه PowerShell 6+ از -Form @{ file = Get-Item "doc.pdf"; desc = "My file" } برای آپلودهای چندبخشی پشتیبانی می‌کند. در Windows PowerShell 5.1، بدنه multipart را به صورت دستی بسازید یا از کلاس‌های .NET (مانند System.Net.Http.MultipartFormDataContent) استفاده کنید. curl2code تبدیل فلگ -F را مدیریت می‌کند.

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

از try/catch استفاده کنید: هر دو cmdlet در پاسخ‌های غیر 2xx خطای WebException پرتاب می‌کنند. با $_.Exception.Response به پاسخ دسترسی پیدا کنید. در PowerShell 7+، از -SkipHttpErrorCheck استفاده کنید تا از پرتاب خطا جلوگیری کرده و به جای آن $response.StatusCode را به صورت دستی بررسی کنید.

چگونه با JSON در PowerShell کار کنیم؟

Invoke-RestMethod به طور خودکار JSON را به PSObject پارس می‌کند. برای تبدیل دستی: $data = $json | ConvertFrom-Json. برای ارسال JSON: $body = @{ name = "John" } | ConvertTo-Json. خط لوله اشیاء در PowerShell به طور طبیعی با پاسخ‌های پارس شده API برای فیلتر کردن و تغییر شکل ادغام می‌شود.

چگونه تایم‌اوت‌ها را در PowerShell تنظیم کنیم؟

از پارامتر -TimeoutSec 30 در هر دو cmdlet استفاده کنید. در PowerShell 7+، از -ConnectionTimeoutSeconds و -OperationTimeoutSeconds برای کنترل دقیق‌تر استفاده کنید. برای تلاش مجدد، از -MaximumRetryCount 3 و -RetryIntervalSec 2 (در PowerShell 7.1+) استفاده کنید.

چگونه از پروکسی در PowerShell استفاده کنیم؟

از پارامتر -Proxy 'http://proxy:8080' استفاده کنید. برای احراز هویت پروکسی: -ProxyCredential (Get-Credential). PowerShell به طور پیش‌فرض در ویندوز از تنظیمات پروکسی کل سیستم پیروی می‌کند. برای دور زدن: -NoProxy (در PowerShell 6+). curl2code فلگ‌های -x را به پارامترهای پروکسی PowerShell تبدیل می‌کند.

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

یک دستور curl POST مانند curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL را با استفاده از curl2code به PowerShell تبدیل کنید. کد تولید شده از Invoke-RestMethod -Uri $url -Method Post -Body ($data | ConvertTo-Json) -ContentType 'application/json' استفاده می‌کند. curl2code به طور خودکار فلگ‌های -d/--data با محتوای JSON را تشخیص داده و هدر Content-Type مناسب را در کد Invoke-RestMethod تنظیم می‌کند.

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

دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را به curl2code بدهید تا کد Invoke-RestMethod را با هدر احراز هویت تولید کند: -Headers @{ Authorization = 'Bearer YOUR_TOKEN' }. curl2code توکن‌های Bearer را از هر دو فلگ -H "Authorization: Bearer ..." و --oauth2-bearer تشخیص می‌دهد. برای Basic auth، از -u user:pass استفاده کنید.

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

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

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

راهنماهای curl

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