Μετατροπή curl σε Rust

Το curl2code μετατρέπει εντολές curl σε κώδικα Rust χρησιμοποιώντας το crate reqwest. Η μετατροπή εκτελείται στο πρόγραμμα περιήγησής σας μέσω WebAssembly για πλήρη ιδιωτικότητα. Για Go, δείτε τον μετατροπέα curl σε Go. Για C, δείτε το curl σε C. Παρακάτω υπάρχουν πρακτικά παραδείγματα Rust με async/await.

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

  1. 1

    Ανοίξτε τα DevTools

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

  2. 2

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

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

  3. 3

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

    Κάντε δεξί κλικ στο αίτημα → CopyCopy as cURL. Στη συνέχεια, επικολλήστε το παραπάνω.

Συχνές Ερωτήσεις

Τι είναι η Rust reqwest;

Η reqwest είναι ο πιο δημοφιλής HTTP πελάτης για τη Rust, χτισμένος πάνω στη hyper. Παρέχει τόσο blocking όσο και ασύγχρονα API, αυτόματη σειριοποίηση JSON μέσω serde, TLS, χειρισμό cookies και υποστήριξη proxy. Προσθέστε την με cargo add reqwest --features json. Είναι η προεπιλεγμένη βιβλιοθήκη που χρησιμοποιεί το curl2code για μετατροπές σε Rust.

reqwest vs hyper vs ureq — ποια πρέπει να χρησιμοποιήσω;

Η reqwest είναι η πρώτη επιλογή για τα περισσότερα έργα — υψηλού επιπέδου, πλούσια σε χαρακτηριστικά και ασύγχρονη. Η hyper είναι χαμηλότερου επιπέδου και δίνει μέγιστο έλεγχο (η reqwest είναι χτισμένη πάνω της). Η ureq είναι ένας ελάχιστος πελάτης μόνο για σύγχρονη (blocking) χρήση χωρίς εξάρτηση από ασύγχρονο runtime. Για μια παρόμοια προσέγγιση πρότυπης βιβλιοθήκης, δείτε το curl σε Go ή το curl σε C.

Πώς γίνεται ο χειρισμός της ταυτοποίησης στη Rust;

Για Bearer: client.get(url).bearer_auth(token). Για Basic: client.get(url).basic_auth(user, Some(pass)). Ή ορίστε τις κεφαλίδες χειροκίνητα με το .header("Authorization", value). Το curl2code μετατρέπει τις σημαίες -u και -H 'Authorization: ...' στις κατάλληλες μεθόδους της reqwest.

Πώς στέλνω δεδομένα φόρμας multipart στη Rust;

Χρησιμοποιήστε το reqwest::multipart::Form: δημιουργήστε το με Form::new(), προσθέστε πεδία κειμένου με .text("key", "value") και αρχεία με .file("field", path).await?. Περάστε το στο client.post(url).multipart(form). Το curl2code χειρίζεται τις σημαίες -F για το reqwest multipart.

Πώς γίνεται ο χειρισμός σφαλμάτων HTTP στη Rust;

Η reqwest επιστρέφει Result που περιτυλίγει Response σε επιτυχία ή reqwest::Error σε αποτυχία — χρησιμοποιήστε τον τελεστή ? για διάδοση. Ελέγξτε το response.status().is_success() ή καλέστε το response.error_for_status()? που μετατρέπει κωδικούς κατάστασης εκτός 2xx σε σφάλματα. Το σύστημα τύπων της Rust διασφαλίζει ότι όλοι οι δρόμοι σφαλμάτων αντιμετωπίζονται ρητά κατά τον χρόνο μεταγλώττισης.

Ποιο ασύγχρονο runtime χρειάζεται η reqwest;

Η reqwest απαιτεί το runtime tokio από προεπιλογή. Σημειώστε τη main συνάρτησή σας με #[tokio::main]. Για σύγχρονη χρήση χωρίς ασύγχρονο runtime, ενεργοποιήστε το feature blocking και χρησιμοποιήστε το reqwest::blocking::Client. Το curl2code παράγει ασύγχρονο κώδικα με tokio από προεπιλογή. Για ένα άλλο ασύγχρονο οικοσύστημα, δείτε το curl σε Go (goroutines).

Πώς ορίζονται τα χρονικά όρια στη Rust reqwest;

Ορίστε στον πελάτη: Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. Ανά αίτημα: client.get(url).timeout(Duration::from_secs(5)). Αυτά αντιστοιχίζονται στις σημαίες --max-time και --connect-timeout του curl.

Πώς χρησιμοποιείται ένας διακομιστής μεσολάβησης (proxy) με τη reqwest;

Ορίστε έναν proxy στον client builder: Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?. Υποστηρίζει HTTP, HTTPS και SOCKS5 proxies. Η reqwest σέβεται επίσης τις μεταβλητές περιβάλλοντος HTTP_PROXY και HTTPS_PROXY από προεπιλογή. Το curl2code μετατρέπει τις σημαίες -x στη ρύθμιση του proxy.

Πώς να στείλετε ένα POST αίτημα με JSON σώμα στη Rust;

Μετατρέψτε μια curl POST εντολή όπως curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL σε Rust χρησιμοποιώντας το curl2code. Ο παραγόμενος κώδικας χρησιμοποιεί client.post(url).json(&data).send().await?. Το curl2code εντοπίζει αυτόματα τα -d/--data flags με JSON περιεχόμενο και ορίζει την κατάλληλη Content-Type κεφαλίδα στον κώδικα reqwest.

Πώς να προσθέσετε εξουσιοδότηση Bearer token στη Rust;

Περάστε το curl -H "Authorization: Bearer YOUR_TOKEN" URL στο curl2code και αυτό θα δημιουργήσει κώδικα reqwest με την κεφαλίδα εξουσιοδότησης: .bearer_auth("YOUR_TOKEN"). Το curl2code εντοπίζει τα Bearer tokens τόσο από τα -H "Authorization: Bearer ..." όσο και από τα --oauth2-bearer flags. Για Basic auth, χρησιμοποιήστε το -u user:pass.

Πώς να ορίσετε την κεφαλίδα Content-Type στη Rust;

Το curl2code μετατρέπει το curl -H "Content-Type: application/json" URL σε κώδικα reqwest με τη σωστή κεφαλίδα: .header("Content-Type", "application/json"). Για δεδομένα -d, το curl χρησιμοποιεί από προεπιλογή το application/x-www-form-urlencoded· για μεταφορτώσεις φορμών -F, χρησιμοποιεί το multipart/form-data. Το curl2code αντιστοιχίζει το καθένα στο σωστό reqwest API.

Χρήσιμοι σύνδεσμοι

Οδηγοί curl

Μετατροπή curl σε άλλες γλώσσες