curl-ის კონვერტაცია Elixir-ში

გარდაქმენით curl ბრძანებები Elixir კოდად HTTPoison-ის გამოყენებით. curl2code მუშაობს მთლიანად თქვენს ბრაუზერში WebAssembly-ის მეშვეობით — თქვენი მონაცემები რჩება კონფიდენციალური. Ruby-სთვის სცადეთ ჩვენი curl to Ruby კონვერტორი. Go-სთვის იხილეთ curl to Go. ქვემოთ მოცემულია გამოსაყენებლად მზა Elixir მაგალითები.

როგორ დავაკოპიროთ curl ბრაუზერიდან

  1. 1

    გახსენით DevTools

    დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.

  2. 2

    გადადით Network ტაბზე

    დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.

  3. 3

    დააკოპირეთ როგორც cURL

    დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → CopyCopy 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-ის კონვერტაცია სხვა ენებზე