curl을 Elixir(으)로 변환
HTTPoison을 사용하여 curl 명령을 Elixir 코드로 변환하세요. 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을 선택합니다. 그런 다음 위에 붙여넣으세요.
자주 묻는 질문 (FAQ)
Elixir HTTPoison이란 무엇인가요?
HTTPoison은 Erlang hackney 라이브러리를 기반으로 구축된 Elixir에서 가장 인기 있는 HTTP 클라이언트입니다. GET, POST, 스트리밍 및 비동기 요청을 위한 깔끔하고 함수형인 API를 제공합니다. mix.exs 의존성에 {:httpoison, "~> 2.0"}를 추가합니다. curl2code는 Elixir 변환의 기본값으로 HTTPoison을 사용합니다.
HTTPoison vs Req vs Tesla vs Finch — 어떤 것을 사용해야 하나요?
HTTPoison은 가장 안정적이고 널리 사용됩니다. Req는 재시도 및 인증 기능이 포함된 최신 라이브러리입니다. Tesla는 Faraday와 같은 미들웨어 아키텍처를 제공합니다. Finch는 프로덕션용 고성능 저수준 라이브러리입니다. 유사한 함수형 방식은 curl to Clojure 또는 curl to Ruby를 참조하세요.
Elixir에서 인증을 처리하는 방법은 무엇인가요?
헤더를 문자열 튜플 리스트로 전달합니다: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). Basic 인증의 경우 user:pass를 Base.encode64/1로 인코딩하고 값 앞에 "Basic "을 추가합니다. 응답을 {:ok, response} 또는 {:error, reason}으로 패턴 매칭합니다. curl2code는 -H 및 -u 플래그를 관용적인 Elixir 코드로 변환합니다.
Elixir에서 멀티파트 폼 데이터를 보내는 방법은 무엇인가요?
바디로 {:multipart, parts}를 사용합니다: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). 간단한 폼 필드의 경우 {"key", "value"} 튜플을 추가합니다. curl2code는 HTTPoison 멀티파트를 위한 -F 플래그를 처리합니다.
Elixir HTTP 요청에서 오류를 처리하는 방법은 무엇인가요?
HTTPoison은 태그된 튜플을 반환합니다: {:ok, response} 또는 {:error, reason}. case 또는 with로 패턴 매칭하세요: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. 이는 예외 없이 명시적이고 철저한 오류 처리를 하는 관용적인 Elixir 방식입니다.
Elixir에서 동시 HTTP 요청을 만드는 방법은 무엇인가요?
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를 참조하세요.
Elixir에서 타임아웃을 설정하는 방법은 무엇인가요?
HTTPoison에 옵션을 전달합니다: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout은 연결 타임아웃이고, recv_timeout은 응답 타임아웃입니다(둘 다 밀리초 단위). 재시도의 경우 시도 횟수를 줄이는 재귀 함수로 감싸거나 Req 라이브러리의 내장 재시도 기능을 사용하세요.
Elixir에서 프록시를 사용하는 방법은 무엇인가요?
HTTPoison에 프록시 옵션을 전달합니다: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). 인증된 프록시의 경우 proxy_auth: {"user", "pass"}를 사용합니다. HTTPoison은 기본 hackney 라이브러리를 통해 SOCKS5 프록시도 지원합니다. curl2code는 -x 플래그를 Elixir 프록시 구성으로 변환합니다.
Elixir에서 JSON 바디를 포함한 POST 요청을 보내는 방법은 무엇인가요?
curl2code를 사용하여 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL과 같은 curl POST 명령어를 Elixir로 변환하세요. 생성된 코드는 HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}])를 사용합니다. curl2code는 JSON 콘텐츠가 포함된 -d/--data 플래그를 자동으로 감지하고 HTTPoison 코드에 적절한 Content-Type 헤더를 설정합니다.
Elixir에서 Bearer 토큰 인증을 추가하는 방법은 무엇인가요?
curl -H "Authorization: Bearer YOUR_TOKEN" URL을 curl2code에 입력하면 [{'Authorization', 'Bearer YOUR_TOKEN'}]와 같은 인증 헤더가 포함된 HTTPoison 코드가 생성됩니다. curl2code는 -H "Authorization: Bearer ..." 및 --oauth2-bearer 플래그 모두에서 Bearer 토큰을 감지합니다. Basic auth의 경우 -u user:pass를 사용하세요.
Elixir에서 Content-Type 헤더를 설정하는 방법은 무엇인가요?
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에 매핑합니다.