Μετατροπή curl σε Elixir
Μετατρέψτε εντολές curl σε κώδικα Elixir χρησιμοποιώντας το HTTPoison. Το curl2code εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας μέσω WebAssembly — τα δεδομένα σας παραμένουν ιδιωτικά. Για Ruby, δοκιμάστε τον μετατροπέα curl σε Ruby. Για Go, δείτε το curl σε Go. Παρακάτω υπάρχουν έτοιμα προς χρήση παραδείγματα Elixir.
Πώς να αντιγράψετε το curl από το πρόγραμμα περιήγησής σας
- 1
Ανοίξτε τα DevTools
Πατήστε F12 ή Ctrl+Shift+I για να ανοίξετε τα εργαλεία προγραμματιστή του προγράμματος περιήγησης.
- 2
Μεταβείτε στην καρτέλα Network
Κάντε κλικ στην καρτέλα Network και εκτελέστε την ενέργεια που ενεργοποιεί το αίτημα HTTP.
- 3
Αντιγραφή ως cURL
Κάντε δεξί κλικ στο αίτημα → Copy → Copy as cURL. Στη συνέχεια, επικολλήστε το παραπάνω.
Συχνές Ερωτήσεις
Τι είναι το Elixir HTTPoison;
Το HTTPoison είναι ο πιο δημοφιλής HTTP client για την Elixir, χτισμένος πάνω στην Erlang βιβλιοθήκη hackney. Παρέχει ένα καθαρό, συναρτησιακό API για GET, POST, streaming και async αιτήματα. Προσθέστε το στο mix.exs deps: {:httpoison, "~> 2.0"}. Το curl2code χρησιμοποιεί το HTTPoison ως προεπιλογή για τις μετατροπές Elixir.
HTTPoison vs Req vs Tesla vs Finch — ποιο να χρησιμοποιήσω;
Το HTTPoison είναι το πιο καθιερωμένο και ευρέως χρησιμοποιούμενο. Το Req είναι νεότερο, περιλαμβάνει τα πάντα (batteries-included) με επαναλήψεις και auth. Το Tesla προσφέρει αρχιτεκτονική middleware όπως το Faraday. Το Finch είναι χαμηλού επιπέδου, υψηλής απόδοσης για χρήση σε παραγωγή. Για παρόμοιες συναρτησιακές προσεγγίσεις, δείτε το curl σε Clojure ή curl σε Ruby.
Πώς γίνεται ο χειρισμός του authentication στην Elixir;
Περάστε τις κεφαλίδες ως λίστα από string tuples: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Για Basic auth, κωδικοποιήστε user:pass με Base.encode64/1 και προσθέστε "Basic " ως πρόθεμα στην τιμή. Κάντε pattern match στην απόκριση για {:ok, response} ή {:error, reason}. Το curl2code μετατρέπει τις σημαίες -H και -u σε ιδιωματικό Elixir.
Πώς στέλνω multipart form data στην Elixir;
Χρησιμοποιήστε το {:multipart, parts} ως σώμα: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). Για απλά πεδία φόρμας, προσθέστε tuples {"key", "value"}. Το curl2code χειρίζεται τα flags -F για το HTTPoison multipart.
Πώς γίνεται ο χειρισμός σφαλμάτων στα αιτήματα HTTP της Elixir;
Το HTTPoison επιστρέφει tagged tuples: {:ok, response} ή {:error, reason}. Κάντε pattern match με case ή with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. Αυτό είναι το ιδιωματικό Elixir — ρητός, εξαντλητικός χειρισμός σφαλμάτων χωρίς εξαιρέσεις.
Πώς γίνονται ταυτόχρονα αιτήματα HTTP στην Elixir;
Χρησιμοποιήστε τα Task.async/1 και Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) και μετά results = tasks |> Enum.map(&Task.await/1). Το BEAM VM της Elixir διαχειρίζεται αποτελεσματικά χιλιάδες ταυτόχρονες διεργασίες. Για παρόμοιο concurrency, δείτε το curl σε Go.
Πώς ορίζονται τα timeouts στην Elixir;
Περάστε επιλογές στο HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). Το timeout είναι το timeout σύνδεσης, το recv_timeout είναι το timeout απόκρισης (και τα δύο σε χιλιοστά του δευτερολέπτου). Για επαναλήψεις, περιβάλλετε σε μια αναδρομική συνάρτηση ή χρησιμοποιήστε την ενσωματωμένη επανάληψη της βιβλιοθήκης Req.
Πώς χρησιμοποιείται ένας proxy στην Elixir;
Περάστε την επιλογή proxy στο HTTPoison: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). Για proxies με authentication, χρησιμοποιήστε το proxy_auth: {"user", "pass"}. Το HTTPoison υποστηρίζει επίσης SOCKS5 proxies μέσω της υποκείμενης βιβλιοθήκης hackney. Το curl2code μετατρέπει τα flags -x σε ρύθμιση proxy της Elixir.
Πώς να στείλετε ένα POST αίτημα με JSON σώμα στην Elixir;
Μετατρέψτε μια curl POST εντολή όπως curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL σε Elixir χρησιμοποιώντας το curl2code. Ο παραγόμενος κώδικας χρησιμοποιεί HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). Το curl2code εντοπίζει αυτόματα τα -d/--data flags με JSON περιεχόμενο και ορίζει την κατάλληλη Content-Type κεφαλίδα στον κώδικα HTTPoison.
Πώς να προσθέσετε εξουσιοδότηση Bearer token στην Elixir;
Περάστε το curl -H "Authorization: Bearer YOUR_TOKEN" URL στο curl2code και αυτό θα δημιουργήσει κώδικα HTTPoison με την κεφαλίδα εξουσιοδότησης: [{'Authorization', 'Bearer YOUR_TOKEN'}]. Το curl2code εντοπίζει τα Bearer tokens τόσο από τα -H "Authorization: Bearer ..." όσο και από τα --oauth2-bearer flags. Για Basic auth, χρησιμοποιήστε το -u user:pass.
Πώς να ορίσετε την κεφαλίδα Content-Type στην Elixir;
Το curl2code μετατρέπει το curl -H "Content-Type: application/json" URL σε κώδικα HTTPoison με τη σωστή κεφαλίδα: [{'Content-Type', 'application/json'}]. Για δεδομένα -d, το curl χρησιμοποιεί από προεπιλογή το application/x-www-form-urlencoded· για μεταφορτώσεις φορμών -F, χρησιμοποιεί το multipart/form-data. Το curl2code αντιστοιχίζει το καθένα στο σωστό HTTPoison API.
Χρήσιμοι σύνδεσμοι
Οδηγοί curl
Κωδικοί σφαλμάτων curl
Αναζητήστε οποιονδήποτε κωδικό εξόδου curl — αιτίες, λύσεις και συμβουλές αποσφαλμάτωσης.
Λήψη αρχείων με curl
Αποθηκεύστε αρχεία με -o, -O, ακολουθήστε ανακατευθύνσεις, συνεχίστε λήψεις και άλλα.
SSL, TLS & Proxy
Ρυθμίστε πιστοποιητικά, εκδόσεις TLS, HTTP/SOCKS proxy και προσαρμοσμένο DNS.