curl-ის კონვერტაცია Clojure-ში
curl2code გარდაქმნის curl ბრძანებებს Clojure კოდად clj-http-ის გამოყენებით. კონვერტაცია სრულდება თქვენს ბრაუზერში WebAssembly-ის მეშვეობით სრული კონფიდენციალურობისთვის. Elixir-ისთვის ნახეთ ჩვენი curl to Elixir კონვერტორი. Java-სთვის იხილეთ curl to Java. ქვემოთ მოცემულია პრაქტიკული Clojure მაგალითები.
როგორ დავაკოპიროთ curl ბრაუზერიდან
- 1
გახსენით DevTools
დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.
- 2
გადადით Network ტაბზე
დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.
- 3
დააკოპირეთ როგორც cURL
დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → Copy → Copy as cURL. შემდეგ ჩასვით ზემოთ.
ხშირად დასმული კითხვები
რა არის clj-http?
clj-http არის ყველაზე პოპულარული HTTP კლიენტის ბიბლიოთეკა Clojure-სთვის, რომელიც ფუთავს Apache HttpComponents-ს. ის უზრუნველყოფს იდიომატურ, მონაცემებზე ორიენტირებულ API-ს ავტომატური JSON/EDN დამუშავებით, cookie-ების მართვითა და connection pooling-ით. დაამატეთ project.clj-ში: [clj-http "3.x"]. curl2code იყენებს clj-http-ს ყველა Clojure კონვერტაციისთვის.
clj-http vs http-kit vs aleph — რომელი გამოვიყენო?
clj-http არის სინქრონული, ფუნქციებით მდიდარი და ყველაზე ფართოდ გამოყენებული. http-kit არის მსუბუქი ასინქრონული მხარდაჭერით, შესანიშნავია სერვერებისთვის, რომლებიც ასევე აკეთებენ HTTP გამოძახებებს. aleph აგებულია Netty-ზე მაღალი წარმადობის ასინქრონული I/O-სთვის. მსგავსი ფუნქციური ენებისთვის იხილეთ ჩვენი curl to Elixir კონვერტერი ან curl to OCaml.
როგორ ვმართოთ ავტორიზაცია Clojure-ში?
Bearer ავტორიზაციისთვის დაამატეთ header-ები: (client/get url {:headers {"Authorization" "Bearer token"}'}). Basic auth-ისთვის გამოიყენეთ ჩაშენებული ოფცია: {:basic-auth ["user" "pass"]}. clj-http ასევე მხარს უჭერს OAuth და digest ავტორიზაციას. curl2code აკონვერტირებს -u და header დროშებს იდიომატურ Clojure map-ებად.
როგორ გავაგზავნოთ multipart form მონაცემები 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 აკონვერტირებს -F დროშებს ამ Clojure პატერნში.
როგორ ვმართოთ HTTP შეცდომები Clojure-ში?
ნაგულისხმევად, clj-http აგდებს ExceptionInfo-ს არა-2xx პასუხებისას. გამორთეთ {:throw-exceptions false}-ით, რათა სანაცვლოდ მიიღოთ პასუხის map-ი. შეამოწმეთ (:status response). გამოიყენეთ try/catch ex-data-სთან ერთად გამონაკლისებიდან პასუხის ამოსაღებად.
როგორ გავაკეთოთ ასინქრონული HTTP მოთხოვნები Clojure-ში?
გამოიყენეთ clj-http {:async? true}-ით, რომელიც აბრუნებს future-ს. ან გამოიყენეთ http-kit: (http/get url callback). პარალელური მოთხოვნებისთვის გამოიყენეთ pmap ან core.async არხები. Clojure future-ები მუშაობს JVM thread pool-ზე. მსგავსი პარალელიზმისთვის იხილეთ curl to Java.
როგორ დავაყენოთ timeout-ები Clojure-ში?
გადაეცით timeout ოფციები: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). მნიშვნელობები მოცემულია მილიწამებში. განმეორებისთვის გამოიყენეთ :retry-handler ოფცია ან მოაქციეთ მორგებულ retry ფუნქციაში ექსპონენციალური დაყოვნებით. ეს შეესაბამება curl-ის --connect-timeout და --max-time ოფციებს.
როგორ გამოვიყენოთ proxy Clojure-ში?
დააყენეთ proxy ოფციების map-ში: (client/get url {:proxy-host "proxy" :proxy-port 8080}). ავტორიზებული proxy-ებისთვის: დაამატეთ :proxy-user და :proxy-pass. clj-http ასევე მხარს უჭერს SOCKS proxy-ებს. curl2code აკონვერტირებს -x და --proxy დროშებს სწორ Clojure proxy ოფციებად.
როგორ გავაგზავნოთ 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 ფლაგებს 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 ტოკენებს როგორც -H "Authorization: Bearer ...", ისე --oauth2-bearer ფლაგებიდან. 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 და პროქსი
სერტიფიკატების, TLS ვერსიების, HTTP/SOCKS პროქსების და მორგებული DNS-ის კონფიგურაცია.