המרת 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. לאחר מכן הדבק אותה למעלה.
שאלות נפוצות (FAQ)
מה זה C# HttpClient?
HttpClient הוא לקוח ה-HTTP המודרני והמובנה ב-NET. הוא תומך ב-async/await באופן טבעי, ב-HTTP/2, בדחיסה אוטומטית ובמאגר חיבורים. השתמש במופע יחיד של HttpClient (או ב-IHttpClientFactory) לאורך כל האפליקציה שלך כדי למנוע מיצוי של sockets. זוהי ספריית ברירת המחדל והיחידה ש-curl2code משתמש בה להמרות #C.
HttpClient לעומת WebClient לעומת HttpWebRequest — במה להשתמש?
HttpClient הוא הסטנדרט המודרני — תמיד השתמש בו לפרויקטים חדשים ב-NET. WebClient ו-HttpWebRequest הם מיושנים ואין להשתמש בהם בקוד חדש. HttpClient מספק תמיכה באסינכרוניות, ביצועים טובים יותר ו-API נקי יותר. ללקוחות מודרניים דומים, ראה curl ל-Java או curl ל-Go.
איך מטפלים באימות ב-#C?
הגדר את הכותרת: client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token). עבור אימות Basic, קודד את האישורים והגדר את הכותרת. אימות לכל בקשה משתמש ב-request.Headers.Authorization. curl2code מזהה -u ו--H 'Authorization' ומייצר את קוד ה-#C המתאים.
איך שולחים נתוני טופס (multipart form data) ב-#C?
השתמש ב-MultipartFormDataContent: הוסף StringContent עבור שדות ו-StreamContent עם ContentDisposition עבור קבצים. העבר את תוכן ה-multipart ל-PostAsync(url, content). הגבול (boundary) של ה-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.
איך מגדירים פסקי זמן ב-#C HttpClient?
הגדר client.Timeout = TimeSpan.FromSeconds(30) לפסק זמן כולל. לשליטה לכל בקשה, השתמש ב-CancellationTokenSource עם פסק זמן: new CancellationTokenSource(TimeSpan.FromSeconds(10)). עבור ניסיונות חוזרים, השתמש בספריית Polly או ב-IHttpClientFactory עם מדיניות ניסיונות חוזרים.
איך מגדירים פרוקסי ב-#C?
צור HttpClientHandler עם פרוקסי: handler.Proxy = new WebProxy("http://proxy:8080"). העבר את ה-handler ל-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 tokens גם מדגלי -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.