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

Το curl2code μετατρέπει εντολές curl σε κώδικα Ruby χρησιμοποιώντας την τυπική βιβλιοθήκη net/http. Όλα εκτελούνται τοπικά στο πρόγραμμα περιήγησής σας μέσω WebAssembly για πλήρη ιδιωτικότητα. Αν προτιμάτε Python, δείτε τον μετατροπέα curl σε Python. Για Elixir, δείτε το curl σε Elixir. Παρακάτω υπάρχουν πρακτικά παραδείγματα Ruby.

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

  1. 1

    Ανοίξτε τα DevTools

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

  2. 2

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

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

  3. 3

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

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

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

Τι είναι το Ruby net/http;

Το net/http της Ruby είναι ο HTTP πελάτης της πρότυπης βιβλιοθήκης που περιλαμβάνεται σε κάθε εγκατάσταση Ruby. Χειρίζεται GET, POST, μεταφορτώσεις multipart, SSL και προσαρμοσμένες κεφαλίδες. Δεν απαιτείται εγκατάσταση gem. Το curl2code υποστηρίζει επίσης το HTTParty, ένα δημοφιλές gem που απλοποιεί τα κοινά μοτίβα HTTP με ένα καθαρό, δηλωτικό API.

net/http vs HTTParty vs Faraday — ποιο πρέπει να χρησιμοποιήσω;

Το net/http είναι ενσωματωμένο και χωρίς εξαρτήσεις — εξαιρετικό για απλές εργασίες και σενάρια (scripts). Το HTTParty παρέχει ένα καθαρό DSL με αυτόματο JSON parsing. Το Faraday προσφέρει middleware, μοτίβα adapter και τη μεγαλύτερη ευελιξία. Για παρόμοια απλότητα στο scripting, δείτε τον μετατροπέα curl σε Python ή τον μετατροπέα curl σε PHP.

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

Με το net/http: request["Authorization"] = "Bearer token". Για Basic auth: request.basic_auth("user", "pass"). Το HTTParty χρησιμοποιεί headers: { "Authorization" => "Bearer token" } ή basic_auth: { username: "user", password: "pass" }. Το curl2code χειρίζεται τόσο το -u όσο και τις σημαίες κεφαλίδας.

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

Με το net/http, χρησιμοποιήστε το gem multipart-post ή κατασκευάστε το σώμα multipart χειροκίνητα χρησιμοποιώντας το Net::HTTP::Post με συμβολοσειρές ορίων. Το HTTParty το απλοποιεί αυτό με το body: { file: File.open("path") }. Το curl2code μετατρέπει τις σημαίες -F και για τις δύο παραλλαγές βιβλιοθήκης.

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

Με το net/http, ελέγξτε αν το response.is_a?(Net::HTTPSuccess) ή χρησιμοποιήστε το response.value το οποίο εγείρει σφάλμα σε καταστάσεις εκτός 2xx. Το HTTParty επιστρέφει ένα αντικείμενο απόκρισης με τις μεθόδους .success? και .code. Για επίμονες συνδέσεις, χρησιμοποιήστε rescue για τα Errno::ECONNREFUSED και Net::ReadTimeout.

Πώς πραγματοποιούνται ταυτόχρονα αιτήματα HTTP στη Ruby;

Η πρότυπη βιβλιοθήκη της Ruby είναι σύγχρονη. Χρησιμοποιήστε το Thread.new { ... } για βασικό ταυτοχρονισμό ή το gem concurrent-ruby για ομάδες νημάτων (thread pools). Για ασύγχρονο I/O, χρησιμοποιήστε το async-http με το gem Async. Το Typhoeus παρέχει παράλληλη ουρά αιτημάτων. Για ενσωματωμένη ασύγχρονη υποστήριξη, δείτε το curl σε Elixir.

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

Με το net/http: http.open_timeout = 10 (σύνδεση) και http.read_timeout = 30 (απόκριση). Το HTTParty δέχεται την επιλογή timeout: 30. Αυτά αντιστοιχίζονται στα --connect-timeout και --max-time του curl. Πάντα να ορίζετε χρονικά όρια για να αποφύγετε αιτήματα που «κρεμάνε» επ' αόριστον.

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

Με το net/http: Net::HTTP.new(host, port, proxy_host, proxy_port). Ή ορίστε τις μεταβλητές περιβάλλοντος http_proxy και https_proxy — η Ruby τις σέβεται αυτόματα. Το HTTParty χρησιμοποιεί την επιλογή http_proxy: 'http://proxy:8080'. Το curl2code μετατρέπει τις σημαίες -x στη σωστή σύνταξη της Ruby.

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

Μετατρέψτε μια curl POST εντολή όπως curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL σε Ruby χρησιμοποιώντας το curl2code. Ο παραγόμενος κώδικας χρησιμοποιεί Net::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json'). Το curl2code εντοπίζει αυτόματα τα -d/--data flags με JSON περιεχόμενο και ορίζει την κατάλληλη Content-Type κεφαλίδα στον κώδικα net/http.

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

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

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

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

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

Οδηγοί curl

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