curl-ის კონვერტაცია OCaml-ში
გარდაქმენით curl ბრძანებები OCaml კოდად Cohttp-ის გამოყენებით. curl2code მუშაობს მთლიანად თქვენს ბრაუზერში WebAssembly-ის მეშვეობით — თქვენი მონაცემები რჩება კონფიდენციალური. Rust-ისთვის სცადეთ ჩვენი curl to Rust კონვერტორი. Elixir-ისთვის იხილეთ curl to Elixir. ქვემოთ მოცემულია გამოსაყენებლად მზა OCaml მაგალითები.
როგორ დავაკოპიროთ curl ბრაუზერიდან
- 1
გახსენით DevTools
დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.
- 2
გადადით Network ტაბზე
დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.
- 3
დააკოპირეთ როგორც cURL
დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → Copy → Copy as cURL. შემდეგ ჩასვით ზემოთ.
ხშირად დასმული კითხვები
რა არის OCaml Cohttp?
Cohttp არის სტანდარტული HTTP კლიენტისა და სერვერის ბიბლიოთეკა OCaml-ისთვის. მას აქვს როგორც Lwt (მსუბუქი ნაკადები), ასევე Async მხარდაჭერა პარალელური I/O-სთვის. დააინსტალირეთ ბრძანებით opam install cohttp-lwt-unix. ის უზრუნველყოფს ტიპების მიმართ უსაფრთხო (type-safe), ფუნქციურ API-ს HTTP მოთხოვნებისთვის. curl2code იყენებს Cohttp-ს ყველა OCaml კონვერტაციისთვის.
Cohttp vs ocurl vs piaf — რომელი გამოვიყენო?
Cohttp არის სტანდარტული OCaml HTTP ბიბლიოთეკა Lwt/Async მხარდაჭერით. ocurl არის libcurl-ის გარსი, რომელიც იძლევა წვდომას curl-ის ყველა ფუნქციაზე OCaml-იდან. piaf არის უფრო ახალი, HTTP/2-native ბიბლიოთეკა. გამოიყენეთ Cohttp იდიომატური OCaml-ისთვის, ხოლო ocurl, როდესაც გჭირდებათ curl-ის სპეციფიკური ფუნქციები. მსგავსი ფუნქციური ენებისთვის იხილეთ curl to Elixir ან curl to Clojure.
როგორ ვმართოთ ავტორიზაცია OCaml-ში?
დაამატეთ Authorization ჰედერი მოთხოვნას: Header.add headers "Authorization" ("Bearer " ^ token). Basic ავტორიზაციისთვის გამოიყენეთ base64 პაკეტი მონაცემების დასაშიფრად. Cohttp ჰედერები უცვლადია (immutable) — შექმენით ისინი Header.of_list-ით ან Header.add გამოძახებების ჯაჭვით.
როგორ გავაგზავნოთ multipart ფორმის მონაცემები OCaml-ში?
შექმენით multipart ტანი ხელით boundary სტრიქონებით, ან გამოიყენეთ ბიბლიოთეკა, როგორიცაა multipart_form. დააყენეთ Content-Type ჰედერი შესაბამისი boundary-ით. Cohttp-ის ტანი არის მარტივი სტრიქონი ან ნაკადი — დააფორმატეთ multipart მონაცემები RFC 2046-ის მიხედვით. curl2code მართავს -F ფლაგის კონვერტაციას.
როგორ ვმართოთ შეცდომები OCaml HTTP მოთხოვნებისას?
Cohttp Lwt-თან ერთად აბრუნებს promise-ებს — გამოიყენეთ Lwt.catch ან try%lwt ... with სინტაქსი შეცდომების სამართავად. შეამოწმეთ პასუხის სტატუსის კოდი Response.status response-ით. OCaml-ის ტიპების სისტემა უზრუნველყოფს შეცდომების შემთხვევების დამუშავებას. გამოიყენეთ pattern matching სტატუსის კოდებზე ამომწურავი დამუშავებისთვის.
როგორ გავაკეთოთ პარალელური HTTP მოთხოვნები OCaml-ში?
Lwt ბექენდით: გამოიყენეთ Lwt.all [request1; request2] პარალელური შესრულებისთვის ან Lwt_list.map_p URL-ების მასივისთვის. Async-ით: გამოიყენეთ Deferred.all. OCaml-ის კოოპერატიული პარალელიზმი Lwt-ის ან Async-ის მეშვეობით უზრუნველყოფს უსაფრთხო, ეფექტურ პარალელურ I/O-ს ნაკადების უსაფრთხოების (thread safety) პრობლემების გარეშე.
როგორ დავაყენოთ timeout-ები OCaml-ში?
Lwt-ის შემთხვევაში, გამოიყენეთ Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] მოთხოვნის ტაიმერთან შესადარებლად. Cohttp-ს არ აქვს ჩაშენებული timeout ოფციები — შეფუთეთ Lwt promise timeout კომბინატორით. განმეორებითი მცდელობებისთვის (retries) დაწერეთ რეკურსიული ფუნქცია მცდელობების შემცირებით.
როგორ გამოვიყენოთ პროქსი OCaml-ში?
Cohttp-ს არ აქვს ჩაშენებული პროქსის მხარდაჭერა. გამოიყენეთ ocurl (libcurl-ის ბაინდინგები) პროქსისთვის: დააყენეთ CURLOPT_PROXY ოფცია. ალტერნატიულად, დააყენეთ HTTP_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 ფლაგებს 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 ტოკენებს როგორც -H "Authorization: Bearer ...", ისე --oauth2-bearer ფლაგებიდან. 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 და პროქსი
სერტიფიკატების, TLS ვერსიების, HTTP/SOCKS პროქსების და მორგებული DNS-ის კონფიგურაცია.