Μετατροπή curl σε C#

Μετατρέψτε εντολές curl σε κώδικα C# χρησιμοποιώντας το HttpClient. Το curl2code εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας μέσω WebAssembly — τα δεδομένα σας παραμένουν ιδιωτικά. Για ανάπτυξη σε Java, δοκιμάστε τον μετατροπέα curl σε Java. Για TypeScript, δείτε το curl σε TypeScript. Παρακάτω υπάρχουν έτοιμα προς χρήση παραδείγματα C#.

Πώς να αντιγράψετε το curl από το πρόγραμμα περιήγησής σας

  1. 1

    Ανοίξτε τα DevTools

    Πατήστε F12 ή Ctrl+Shift+I για να ανοίξετε τα εργαλεία προγραμματιστή του προγράμματος περιήγησης.

  2. 2

    Μεταβείτε στην καρτέλα Network

    Κάντε κλικ στην καρτέλα Network και εκτελέστε την ενέργεια που ενεργοποιεί το αίτημα HTTP.

  3. 3

    Αντιγραφή ως cURL

    Κάντε δεξί κλικ στο αίτημα → CopyCopy 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 σε άλλες γλώσσες