Μετατροπή curl σε Clojure
Το curl2code μετατρέπει εντολές curl σε κώδικα Clojure χρησιμοποιώντας το clj-http. Η μετατροπή εκτελείται στο πρόγραμμα περιήγησής σας μέσω WebAssembly για πλήρη ιδιωτικότητα. Για Elixir, δείτε τον μετατροπέα curl σε Elixir. Για Java, δείτε το curl σε Java. Παρακάτω υπάρχουν πρακτικά παραδείγματα Clojure.
Πώς να αντιγράψετε το curl από το πρόγραμμα περιήγησής σας
- 1
Ανοίξτε τα DevTools
Πατήστε F12 ή Ctrl+Shift+I για να ανοίξετε τα εργαλεία προγραμματιστή του προγράμματος περιήγησης.
- 2
Μεταβείτε στην καρτέλα Network
Κάντε κλικ στην καρτέλα Network και εκτελέστε την ενέργεια που ενεργοποιεί το αίτημα HTTP.
- 3
Αντιγραφή ως cURL
Κάντε δεξί κλικ στο αίτημα → Copy → Copy as cURL. Στη συνέχεια, επικολλήστε το παραπάνω.
Συχνές Ερωτήσεις
Τι είναι το clj-http;
Το clj-http είναι η πιο δημοφιλής βιβλιοθήκη HTTP client για την Clojure, που περιβάλλει το Apache HttpComponents. Παρέχει ένα ιδιωματικό, data-driven API με αυτόματο parsing JSON/EDN, διαχείριση cookies και connection pooling. Προσθέστε στο project.clj: [clj-http "3.x"]. Το curl2code χρησιμοποιεί το clj-http για όλες τις μετατροπές Clojure.
clj-http vs http-kit vs aleph — ποιο να χρησιμοποιήσω;
Το clj-http είναι σύγχρονο, πλούσιο σε χαρακτηριστικά και το πιο ευρέως χρησιμοποιούμενο. Το http-kit είναι ελαφρύ με υποστήριξη async, εξαιρετικό για servers που κάνουν επίσης κλήσεις HTTP. Το aleph είναι χτισμένο στο Netty για async I/O υψηλής απόδοσης. Για παρόμοιες συναρτησιακές γλώσσες, δείτε τον μετατροπέα curl σε Elixir ή curl σε OCaml.
Πώς γίνεται ο χειρισμός του authentication στην Clojure;
Για Bearer auth, προσθέστε κεφαλίδες: (client/get url {:headers {"Authorization" "Bearer token"}'}). Για Basic auth, χρησιμοποιήστε την ενσωματωμένη επιλογή: {:basic-auth ["user" "pass"]}. Το clj-http υποστηρίζει επίσης OAuth και digest auth. Το curl2code μετατρέπει τα flags -u και τις κεφαλίδες σε ιδιωματικούς χάρτες (maps) της Clojure.
Πώς στέλνω multipart form data στην Clojure;
Χρησιμοποιήστε την επιλογή :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). Το clj-http διαχειρίζεται αυτόματα τη δημιουργία boundary και το Content-Type. Το curl2code μετατρέπει τα flags -F σε αυτό το μοτίβο της Clojure.
Πώς γίνεται ο χειρισμός σφαλμάτων HTTP στην Clojure;
Από προεπιλογή, το clj-http πετάει ExceptionInfo σε αποκρίσεις που δεν είναι 2xx. Απενεργοποιήστε το με {:throw-exceptions false} για να λάβετε τον χάρτη απόκρισης αντ' αυτού. Ελέγξτε το (:status response). Χρησιμοποιήστε try/catch με ex-data για να εξαγάγετε την απόκριση από τις εξαιρέσεις.
Πώς γίνονται async αιτήματα HTTP στην Clojure;
Χρησιμοποιήστε το clj-http με {:async? true} το οποίο επιστρέφει ένα future. Ή χρησιμοποιήστε το http-kit: (http/get url callback). Για παράλληλα αιτήματα, χρησιμοποιήστε pmap ή κανάλια core.async. Τα Clojure futures εκτελούνται στο thread pool του JVM. Για παρόμοιο concurrency, δείτε το curl σε Java.
Πώς ορίζονται τα timeouts στην Clojure;
Περάστε επιλογές timeout: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Οι τιμές είναι σε χιλιοστά του δευτερολέπτου. Για επαναλήψεις, χρησιμοποιήστε την επιλογή :retry-handler ή περιβάλλετε σε μια προσαρμοσμένη συνάρτηση επανάληψης με exponential backoff. Αυτά αντιστοιχούν στα --connect-timeout και --max-time του curl.
Πώς χρησιμοποιείται ένας proxy στην Clojure;
Ορίστε τον proxy στον χάρτη επιλογών: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Για proxies με authentication: προσθέστε :proxy-user και :proxy-pass. Το clj-http υποστηρίζει επίσης SOCKS proxies. Το curl2code μετατρέπει τα flags -x και --proxy στις σωστές επιλογές proxy του clj-http.
Πώς να στείλετε ένα POST αίτημα με JSON σώμα στην Clojure;
Μετατρέψτε μια curl POST εντολή όπως curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL σε Clojure χρησιμοποιώντας το curl2code. Ο παραγόμενος κώδικας χρησιμοποιεί (client/post url {:content-type :json :body (json/generate-string data)}). Το curl2code εντοπίζει αυτόματα τα -d/--data flags με JSON περιεχόμενο και ορίζει την κατάλληλη Content-Type κεφαλίδα στον κώδικα clj-http.
Πώς να προσθέσετε εξουσιοδότηση Bearer token στην Clojure;
Περάστε το curl -H "Authorization: Bearer YOUR_TOKEN" URL στο curl2code και αυτό θα δημιουργήσει κώδικα clj-http με την κεφαλίδα εξουσιοδότησης: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. Το curl2code εντοπίζει τα Bearer tokens τόσο από τα -H "Authorization: Bearer ..." όσο και από τα --oauth2-bearer flags. Για Basic auth, χρησιμοποιήστε το -u user:pass.
Πώς να ορίσετε την κεφαλίδα Content-Type στην Clojure;
Το curl2code μετατρέπει το curl -H "Content-Type: application/json" URL σε κώδικα clj-http με τη σωστή κεφαλίδα: :content-type :json. Για δεδομένα -d, το curl χρησιμοποιεί από προεπιλογή το application/x-www-form-urlencoded· για μεταφορτώσεις φορμών -F, χρησιμοποιεί το multipart/form-data. Το curl2code αντιστοιχίζει το καθένα στο σωστό clj-http API.
Χρήσιμοι σύνδεσμοι
Οδηγοί curl
Κωδικοί σφαλμάτων curl
Αναζητήστε οποιονδήποτε κωδικό εξόδου curl — αιτίες, λύσεις και συμβουλές αποσφαλμάτωσης.
Λήψη αρχείων με curl
Αποθηκεύστε αρχεία με -o, -O, ακολουθήστε ανακατευθύνσεις, συνεχίστε λήψεις και άλλα.
SSL, TLS & Proxy
Ρυθμίστε πιστοποιητικά, εκδόσεις TLS, HTTP/SOCKS proxy και προσαρμοσμένο DNS.