تحويل curl إلى C#
قم بتحويل أوامر curl إلى كود C# باستخدام HttpClient. يعمل curl2code بالكامل في متصفحك عبر WebAssembly — بياناتك تبقى خاصة. لتطوير Java، جرب محول curl إلى Java. لـ TypeScript، راجع curl إلى TypeScript. أدناه أمثلة C# جاهزة للاستخدام.
كيفية نسخ curl من متصفحك
- 1
افتح أدوات المطور (DevTools)
اضغط على F12 أو Ctrl+Shift+I لفتح أدوات مطور المتصفح.
- 2
انتقل إلى علامة تبويب الشبكة (Network)
انقر فوق علامة التبويب Network وقم بالإجراء الذي يؤدي إلى إرسال طلب HTTP.
- 3
نسخ كـ cURL
انقر بزر الماوس الأيمن على الطلب ← Copy ← Copy as cURL. ثم قم بلصقه أعلاه.
الأسئلة الشائعة
ما هو HttpClient في C#؟
يعد HttpClient عميل HTTP الحديث والمدمج في .NET. يدعم async/await بشكل أصلي، و HTTP/2، وإلغاء الضغط التلقائي، وتجميع الاتصالات. استخدم مثيلاً واحداً من HttpClient (أو IHttpClientFactory) طوال فترة تطبيقك لتجنب استنفاد المقابس (sockets). إنه المكتبة الافتراضية والوحيدة التي يستخدمها curl2code لتحويلات C#.
مقارنة بين HttpClient و WebClient و HttpWebRequest — أيهما أستخدم؟
HttpClient هو المعيار الحديث — استخدمه دائماً لمشاريع .NET الجديدة. WebClient و HttpWebRequest قديمان ولا ينبغي استخدامهما في الكود الجديد. يوفر HttpClient دعماً لعدم التزامن، وأداءً أفضل، وواجهة برمجة تطبيقات أنظف. لعملاء حديثين مماثلين، راجع curl إلى Java أو curl إلى Go.
كيفية التعامل مع المصادقة في C#؟
اضبط الترويسة: client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token). لمصادقة Basic، قم بتشفير بيانات الاعتماد واضبط الترويسة. للمصادقة لكل طلب، استخدم request.Headers.Authorization. يكتشف curl2code أعلام -u و -H 'Authorization' وينتج كود C# الصحيح.
كيفية إرسال بيانات نموذج متعدد الأجزاء في C#؟
استخدم MultipartFormDataContent: أضف StringContent للحقول و StreamContent مع ContentDisposition للملفات. مرر المحتوى متعدد الأجزاء إلى PostAsync(url, content). يتم ضبط حدود Content-Type تلقائياً. يحول curl2code أعلام -F إلى هذا النمط.
كيفية التعامل مع أخطاء HTTP في C#؟
استدعِ response.EnsureSuccessStatusCode() لإلقاء HttpRequestException عند الحالات غير 2xx. أو تحقق من 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() أبداً — فقد تسبب حالات جمود (deadlocks). لأنماط مماثلة، راجع curl إلى TypeScript.
كيفية ضبط المهلات في HttpClient في C#؟
اضبط 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 إلى C# باستخدام curl2code. يستخدم الكود الناتج 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.