curl-ის კონვერტაცია Elixir-ში
გარდაქმენით curl ბრძანებები Elixir კოდად HTTPoison-ის გამოყენებით. curl2code მუშაობს მთლიანად თქვენს ბრაუზერში WebAssembly-ის მეშვეობით — თქვენი მონაცემები რჩება კონფიდენციალური. Ruby-სთვის სცადეთ ჩვენი curl to Ruby კონვერტორი. Go-სთვის იხილეთ curl to Go. ქვემოთ მოცემულია გამოსაყენებლად მზა Elixir მაგალითები.
როგორ დავაკოპიროთ curl ბრაუზერიდან
- 1
გახსენით DevTools
დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.
- 2
გადადით Network ტაბზე
დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.
- 3
დააკოპირეთ როგორც cURL
დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → Copy → Copy as cURL. შემდეგ ჩასვით ზემოთ.
ხშირად დასმული კითხვები
რა არის Elixir HTTPoison?
HTTPoison არის ყველაზე პოპულარული HTTP კლიენტი Elixir-ისთვის, აგებული Erlang-ის hackney ბიბლიოთეკაზე. ის უზრუნველყოფს სუფთა, ფუნქციურ API-ს GET, POST, სტრიმინგისა და ასინქრონული მოთხოვნებისთვის. დაამატეთ mix.exs-ის deps-ში: {:httpoison, "~> 2.0"}. curl2code იყენებს HTTPoison-ს, როგორც ნაგულისხმევს Elixir კონვერტაციებისთვის.
HTTPoison vs Req vs Tesla vs Finch — რომელი გამოვიყენო?
HTTPoison არის ყველაზე დამკვიდრებული და ფართოდ გამოყენებული. Req არის უფრო ახალი, ყველაფრით უზრუნველყოფილი (განმეორებები, ავტორიზაცია). Tesla გთავაზობთ middleware არქიტექტურას Faraday-ს მსგავსად. Finch არის დაბალი დონის, მაღალი წარმადობის პროდუქციაში გამოსაყენებლად. მსგავსი ფუნქციური მიდგომებისთვის იხილეთ curl to Clojure ან curl to Ruby.
როგორ ვმართოთ ავტორიზაცია Elixir-ში?
გადაეცით header-ები სტრინგ tuple-ების სიის სახით: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Basic auth-ისთვის დააკოდირეთ user:pass Base.encode64/1-ით და დაამატეთ "Basic " მნიშვნელობის წინ. მოახდინეთ პასუხის pattern match {:ok, response} ან {:error, reason}-ისთვის. curl2code აკონვერტირებს -H და -u დროშებს იდიომატურ Elixir-ში.
როგორ გავაგზავნოთ multipart form მონაცემები Elixir-ში?
გამოიყენეთ {:multipart, parts} როგორც body: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). მარტივი ფორმის ველებისთვის დაამატეთ {"key", "value"} tuple-ები. curl2code მართავს -F დროშებს HTTPoison multipart-ისთვის.
როგორ ვმართოთ შეცდომები Elixir HTTP მოთხოვნებში?
HTTPoison აბრუნებს მონიშნულ tuple-ებს: {:ok, response} ან {:error, reason}. გამოიყენეთ pattern match case-ით ან with-ით: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. ეს არის იდიომატური Elixir — მკაფიო, ამომწურავი შეცდომების მართვა გამონაკლისების გარეშე.
როგორ გავაკეთოთ პარალელური HTTP მოთხოვნები Elixir-ში?
გამოიყენეთ Task.async/1 და Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) შემდეგ results = tasks |> Enum.map(&Task.await/1). Elixir-ის BEAM VM ეფექტურად მართავს ათასობით პარალელურ პროცესს. მსგავსი პარალელიზმისთვის იხილეთ curl to Go.
როგორ დავაყენოთ timeout-ები Elixir-ში?
გადაეცით ოფციები HTTPoison-ს: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout არის კავშირის timeout, recv_timeout არის პასუხის timeout (ორივე მილიწამებში). განმეორებისთვის მოაქციეთ რეკურსიულ ფუნქციაში მცირებადი მცდელობებით ან გამოიყენეთ Req ბიბლიოთეკის ჩაშენებული retry.
როგორ გამოვიყენოთ proxy Elixir-ში?
გადაეცით proxy ოფცია HTTPoison-ს: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). ავტორიზებული proxy-ებისთვის გამოიყენეთ proxy_auth: {"user", "pass"}. HTTPoison ასევე მხარს უჭერს SOCKS5 proxy-ებს ქვედა დონის hackney ბიბლიოთეკის მეშვეობით. curl2code აკონვერტირებს -x დროშებს Elixir proxy კონფიგურაციაში.
როგორ გავაგზავნოთ POST მოთხოვნა JSON ტანით Elixir ენაზე?
გადაიყვანეთ curl POST ბრძანება, როგორიცაა curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, Elixir ენაზე curl2code გამოყენებით. გენერირებული კოდი იყენებს HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). curl2code ავტომატურად ამოიცნობს -d/--data ფლაგებს JSON კონტენტით და ადგენს შესაბამის Content-Type ჰედერს HTTPoison კოდში.
როგორ დავამატოთ Bearer token ავტორიზაცია Elixir ენაზე?
მიაწოდეთ curl -H "Authorization: Bearer YOUR_TOKEN" URL ბრძანება curl2code ხელსაწყოს და ის დააგენერირებს HTTPoison კოდს ავტორიზაციის ჰედერით: [{'Authorization', 'Bearer YOUR_TOKEN'}]. curl2code ამოიცნობს Bearer ტოკენებს როგორც -H "Authorization: Bearer ...", ისე --oauth2-bearer ფლაგებიდან. Basic auth-ისთვის გამოიყენეთ -u user:pass.
როგორ განვსაზღვროთ Content-Type ჰედერი Elixir ენაზე?
curl2code გადაიყვანს curl -H "Content-Type: application/json" URL ბრძანებას HTTPoison კოდში შესაბამისი ჰედერით: [{'Content-Type', 'application/json'}]. -d მონაცემებისთვის curl სტანდარტულად იყენებს application/x-www-form-urlencoded; -F ფორმის ატვირთვისთვის კი — multipart/form-data. curl2code თითოეულ მათგანს შესაბამის HTTPoison API-სთან აკავშირებს.
სასარგებლო ბმულები
curl სახელმძღვანელოები
curl შეცდომის კოდები
მოძებნეთ ნებისმიერი curl გასვლის კოდი — მიზეზები, გამოსწორებები და გამართვის რჩევები.
ფაილების ჩამოტვირთვა curl-ით
შეინახეთ ფაილები -o, -O პარამეტრებით, მიჰყევით გადამისამართებებს, განაახლეთ ჩამოტვირთვები და სხვა.
SSL, TLS და პროქსი
სერტიფიკატების, TLS ვერსიების, HTTP/SOCKS პროქსების და მორგებული DNS-ის კონფიგურაცია.