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

Το curl2code μετατρέπει εντολές curl σε κώδικα Clojure χρησιμοποιώντας το clj-http. Η μετατροπή εκτελείται στο πρόγραμμα περιήγησής σας μέσω WebAssembly για πλήρη ιδιωτικότητα. Για Elixir, δείτε τον μετατροπέα curl σε Elixir. Για Java, δείτε το curl σε Java. Παρακάτω υπάρχουν πρακτικά παραδείγματα Clojure.

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

  1. 1

    Ανοίξτε τα DevTools

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

  2. 2

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

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

  3. 3

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

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