تحويل curl إلى PowerShell
قم بتحويل أوامر curl إلى كود PowerShell باستخدام Invoke-RestMethod. يعمل curl2code بالكامل في متصفحك عبر WebAssembly — بياناتك تبقى خاصة. لـ C#، جرب محول curl إلى C#. لـ Python، راجع curl إلى Python. ستجد أدناه أمثلة PowerShell جاهزة للاستخدام.
كيفية نسخ curl من متصفحك
- 1
افتح أدوات المطور (DevTools)
اضغط على F12 أو Ctrl+Shift+I لفتح أدوات مطور المتصفح.
- 2
انتقل إلى علامة تبويب الشبكة (Network)
انقر فوق علامة التبويب Network وقم بالإجراء الذي يؤدي إلى إرسال طلب HTTP.
- 3
نسخ كـ cURL
انقر بزر الماوس الأيمن على الطلب ← Copy ← Copy 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 — مثالي للعمل مع واجهات البرمجة. يعيد Invoke-WebRequest الاستجابة الكاملة مع الترويسات ورمز الحالة والمحتوى الخام — أفضل لتصحيح الأخطاء والاستجابات التي ليست JSON. استخدم RestMethod لواجهات البرمجة، و WebRequest للكشط أو التشخيص. لنهج .NET مماثل، راجع curl إلى C#.
كيفية التعامل مع المصادقة في PowerShell؟
للمصادقة بـ Bearer: Invoke-RestMethod -Uri $url -Headers @{ Authorization = "Bearer $token" }. للمصادقة الأساسية، استخدم -Credential (Get-Credential) أو -Authentication Basic (PowerShell 6+). يتعامل PowerShell مع بيانات الاعتماد بأمان باستخدام SecureString. يقوم curl2code بتحويل أعلام المصادقة إلى معلمات أوامر PowerShell.
كيفية إرسال بيانات نموذج متعدد الأجزاء في 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: يطلق كلا الأمرين استثناء WebException عند الاستجابات التي ليست من فئة 2xx. يمكن الوصول إلى الاستجابة عبر $_.Exception.Response. في PowerShell 7+، استخدم -SkipHttpErrorCheck لمنع إطلاق الاستثناء والتحقق من $response.StatusCode يدويًا بدلاً من ذلك.
كيفية العمل مع JSON في PowerShell؟
يقوم Invoke-RestMethod بتحليل JSON تلقائيًا إلى PSObject. للتحويل اليدوي: $data = $json | ConvertFrom-Json. لإرسال JSON: $body = @{ name = "John" } | ConvertTo-Json. يتكامل خط أنابيب الكائنات في PowerShell بشكل طبيعي مع استجابات واجهة البرمجة المحللة للتصفية والتحويل.
كيفية تعيين مهلة زمنية في PowerShell؟
استخدم معلمة -TimeoutSec 30 في كلا الأمرين. في PowerShell 7+، استخدم -ConnectionTimeoutSeconds و -OperationTimeoutSeconds لتحكم دقيق. لإعادة المحاولة، استخدم -MaximumRetryCount 3 و -RetryIntervalSec 2 (PowerShell 7.1+).
كيفية استخدام وكيل في PowerShell؟
استخدم معلمة -Proxy 'http://proxy:8080'. لمصادقة الوكيل: -ProxyCredential (Get-Credential). يحترم PowerShell إعدادات الوكيل على مستوى النظام افتراضيًا في Windows. للتجاوز: -NoProxy (PowerShell 6+). يقوم curl2code بتحويل أعلام -x إلى معلمات وكيل PowerShell.
كيف يمكن إرسال طلب POST مع جسم JSON في PowerShell؟
قم بتحويل أمر curl POST مثل curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL إلى PowerShell باستخدام curl2code. يستخدم الكود الناتج 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.