Μετατροπή curl σε OCaml
Μετατρέψτε εντολές curl σε κώδικα OCaml χρησιμοποιώντας το Cohttp. Το curl2code εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας μέσω WebAssembly — τα δεδομένα σας παραμένουν ιδιωτικά. Για Rust, δοκιμάστε τον μετατροπέα curl σε Rust. Για Elixir, δείτε το curl σε Elixir. Παρακάτω υπάρχουν έτοιμα προς χρήση παραδείγματα OCaml.
Πώς να αντιγράψετε το curl από το πρόγραμμα περιήγησής σας
- 1
Ανοίξτε τα DevTools
Πατήστε F12 ή Ctrl+Shift+I για να ανοίξετε τα εργαλεία προγραμματιστή του προγράμματος περιήγησης.
- 2
Μεταβείτε στην καρτέλα Network
Κάντε κλικ στην καρτέλα Network και εκτελέστε την ενέργεια που ενεργοποιεί το αίτημα HTTP.
- 3
Αντιγραφή ως cURL
Κάντε δεξί κλικ στο αίτημα → Copy → Copy as cURL. Στη συνέχεια, επικολλήστε το παραπάνω.
Συχνές Ερωτήσεις
Τι είναι το OCaml Cohttp;
Το Cohttp είναι η πρότυπη βιβλιοθήκη HTTP client και server για την OCaml. Υποστηρίζει τόσο Lwt (lightweight threads) όσο και Async backends για ταυτόχρονο I/O. Εγκαταστήστε το με opam install cohttp-lwt-unix. Παρέχει ένα type-safe, συναρτησιακό API για αιτήματα HTTP. Το curl2code χρησιμοποιεί το Cohttp για όλες τις μετατροπές σε OCaml.
Cohttp vs ocurl vs piaf — ποιο να χρησιμοποιήσω;
Το Cohttp είναι η πρότυπη βιβλιοθήκη HTTP της OCaml με υποστήριξη Lwt/Async. Το ocurl περιβάλλει το libcurl, δίνοντας πρόσβαση σε όλες τις δυνατότητες του curl από την OCaml. Το piaf είναι νεότερο και εγγενές στο HTTP/2. Χρησιμοποιήστε το Cohttp για ιδιωματική OCaml, και το ocurl όταν χρειάζεστε συγκεκριμένες δυνατότητες του curl. Για παρόμοιες συναρτησιακές γλώσσες, δείτε curl σε Elixir ή curl σε Clojure.
Πώς γίνεται ο χειρισμός της πιστοποίησης στην OCaml;
Προσθέστε μια κεφαλίδα Authorization στο αίτημα: Header.add headers "Authorization" ("Bearer " ^ token). Για Basic auth, κωδικοποιήστε τα διαπιστευτήρια σε base64 χρησιμοποιώντας το πακέτο base64. Οι κεφαλίδες του Cohttp είναι αμετάβλητες (immutable) — δημιουργήστε τις με Header.of_list ή συνδέστε κλήσεις Header.add.
Πώς στέλνω δεδομένα multipart form στην OCaml;
Κατασκευάστε το σώμα multipart χειροκίνητα με boundary strings ή χρησιμοποιήστε μια βιβλιοθήκη όπως η multipart_form. Ορίστε την κεφαλίδα Content-Type με το boundary. Το σώμα του Cohttp είναι ένα απλό string ή stream — διαμορφώστε το multipart payload σύμφωνα με το RFC 2046. Το curl2code χειρίζεται τη μετατροπή της παραμέτρου -F.
Πώς γίνεται ο χειρισμός σφαλμάτων σε αιτήματα HTTP στην OCaml;
Το Cohttp με Lwt επιστρέφει promises — χρησιμοποιήστε τη σύνταξη Lwt.catch ή try%lwt ... with για το χειρισμό σφαλμάτων. Ελέγξτε τον κωδικό κατάστασης της απόκρισης με Response.status response. Το σύστημα τύπων της OCaml διασφαλίζει ότι χειρίζεστε τις περιπτώσεις αποτυχίας. Χρησιμοποιήστε pattern matching στους κωδικούς κατάστασης για εξαντλητικό χειρισμό.
Πώς γίνονται ταυτόχρονα αιτήματα HTTP στην OCaml;
Με το Lwt backend: χρησιμοποιήστε το Lwt.all [request1; request2] για παράλληλη εκτέλεση ή το Lwt_list.map_p για αντιστοίχιση πάνω σε URLs. Με το Async: χρησιμοποιήστε το Deferred.all. Ο συνεργατικός ταυτοχρονισμός (cooperative concurrency) της OCaml μέσω Lwt ή Async παρέχει ασφαλές και αποδοτικό ταυτόχρονο I/O χωρίς προβλήματα thread safety.
Πώς ορίζονται τα χρονικά όρια (timeouts) στην OCaml;
Με το Lwt, χρησιμοποιήστε το Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] για να τρέξετε ένα αίτημα ενάντια σε έναν χρονοδιακόπτη. Το Cohttp δεν διαθέτει ενσωματωμένες επιλογές timeout — περιβάλλετε το Lwt promise με έναν συνδυαστή timeout. Για επαναλήψεις (retries), υλοποιήστε μια αναδρομική συνάρτηση με μειούμενες προσπάθειες.
Πώς χρησιμοποιείται ένας proxy στην OCaml;
Το Cohttp δεν διαθέτει ενσωματωμένη υποστήριξη proxy. Χρησιμοποιήστε το ocurl (libcurl bindings) για ανάγκες proxy: ορίστε την επιλογή CURLOPT_PROXY. Εναλλακτικά, ορίστε τη μεταβλητή περιβάλλοντος HTTP_PROXY και ρυθμίστε τη σύνδεση ώστε να δρομολογείται χειροκίνητα μέσω του host και της θύρας του proxy.
Πώς να στείλετε ένα POST αίτημα με JSON σώμα στην OCaml;
Μετατρέψτε μια curl POST εντολή όπως curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL σε OCaml χρησιμοποιώντας το curl2code. Ο παραγόμενος κώδικας χρησιμοποιεί Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. Το curl2code εντοπίζει αυτόματα τα -d/--data flags με JSON περιεχόμενο και ορίζει την κατάλληλη Content-Type κεφαλίδα στον κώδικα Cohttp.
Πώς να προσθέσετε εξουσιοδότηση Bearer token στην OCaml;
Περάστε το curl -H "Authorization: Bearer YOUR_TOKEN" URL στο curl2code και αυτό θα δημιουργήσει κώδικα Cohttp με την κεφαλίδα εξουσιοδότησης: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. Το curl2code εντοπίζει τα Bearer tokens τόσο από τα -H "Authorization: Bearer ..." όσο και από τα --oauth2-bearer flags. Για Basic auth, χρησιμοποιήστε το -u user:pass.
Πώς να ορίσετε την κεφαλίδα Content-Type στην OCaml;
Το curl2code μετατρέπει το curl -H "Content-Type: application/json" URL σε κώδικα Cohttp με τη σωστή κεφαλίδα: Header.add headers 'Content-Type' 'application/json'. Για δεδομένα -d, το curl χρησιμοποιεί από προεπιλογή το application/x-www-form-urlencoded· για μεταφορτώσεις φορμών -F, χρησιμοποιεί το multipart/form-data. Το curl2code αντιστοιχίζει το καθένα στο σωστό Cohttp API.
Χρήσιμοι σύνδεσμοι
Οδηγοί curl
Κωδικοί σφαλμάτων curl
Αναζητήστε οποιονδήποτε κωδικό εξόδου curl — αιτίες, λύσεις και συμβουλές αποσφαλμάτωσης.
Λήψη αρχείων με curl
Αποθηκεύστε αρχεία με -o, -O, ακολουθήστε ανακατευθύνσεις, συνεχίστε λήψεις και άλλα.
SSL, TLS & Proxy
Ρυθμίστε πιστοποιητικά, εκδόσεις TLS, HTTP/SOCKS proxy και προσαρμοσμένο DNS.