Μετατροπή 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. Στη συνέχεια, επικολλήστε το παραπάνω.
Συχνές Ερωτήσεις
Τι είναι ο C# HttpClient;
Ο HttpClient είναι ο σύγχρονος, ενσωματωμένος HTTP πελάτης στο .NET. Υποστηρίζει εγγενώς async/await, HTTP/2, αυτόματη αποσυμπίεση και connection pooling. Χρησιμοποιήστε ένα μόνο στιγμιότυπο HttpClient (ή το IHttpClientFactory) σε όλη την εφαρμογή σας για να αποφύγετε την εξάντληση των υποδοχών (sockets). Είναι η προεπιλεγμένη και μοναδική βιβλιοθήκη που χρησιμοποιεί το curl2code για μετατροπές σε C#.
HttpClient vs WebClient vs 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#.
Πώς στέλνω δεδομένα φόρμας multipart στη C#;
Χρησιμοποιήστε το MultipartFormDataContent: προσθέστε StringContent για πεδία και StreamContent με ContentDisposition για αρχεία. Περάστε το περιεχόμενο multipart στο 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.
Πώς ορίζονται τα χρονικά όρια στον C# HttpClient;
Ορίστε το client.Timeout = TimeSpan.FromSeconds(30) για το συνολικό χρονικό όριο. Για έλεγχο ανά αίτημα, χρησιμοποιήστε το CancellationTokenSource με χρονικό όριο: new CancellationTokenSource(TimeSpan.FromSeconds(10)). Για επαναλήψεις, χρησιμοποιήστε τη βιβλιοθήκη Polly ή το IHttpClientFactory με πολιτικές επανάληψης.
Πώς ρυθμίζεται ένας διακομιστής μεσολάβησης (proxy) στη C#;
Δημιουργήστε έναν HttpClientHandler με proxy: handler.Proxy = new WebProxy("http://proxy:8080"). Περάστε τον handler στο new HttpClient(handler). Για να παρακάμψετε τον proxy για τοπικές διευθύνσεις, ορίστε 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 flags με 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 flags. Για 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 αντιστοιχίζει το καθένα στο σωστό HttpClient API.
Χρήσιμοι σύνδεσμοι
Οδηγοί curl
Κωδικοί σφαλμάτων curl
Αναζητήστε οποιονδήποτε κωδικό εξόδου curl — αιτίες, λύσεις και συμβουλές αποσφαλμάτωσης.
Λήψη αρχείων με curl
Αποθηκεύστε αρχεία με -o, -O, ακολουθήστε ανακατευθύνσεις, συνεχίστε λήψεις και άλλα.
SSL, TLS & Proxy
Ρυθμίστε πιστοποιητικά, εκδόσεις TLS, HTTP/SOCKS proxy και προσαρμοσμένο DNS.