curl을 Ruby(으)로 변환
curl2code는 표준 net/http 라이브러리를 사용하여 curl 명령을 Ruby 코드로 변환합니다. 모든 과정은 완전한 개인 정보 보호를 위해 WebAssembly를 통해 브라우저에서 로컬로 실행됩니다. Python을 선호하신다면 curl to Python 변환기를 확인하세요. Elixir의 경우 curl to Elixir를 참조하세요. 아래는 실용적인 Ruby 예제입니다.
브라우저에서 curl을 복사하는 방법
- 1
DevTools 열기
F12 또는 Ctrl+Shift+I를 눌러 브라우저 개발자 도구를 엽니다.
- 2
Network 탭으로 이동
Network 탭을 클릭하고 HTTP 요청을 트리거하는 동작을 수행합니다.
- 3
cURL로 복사
요청을 마우스 오른쪽 버튼으로 클릭 → Copy → Copy as cURL을 선택합니다. 그런 다음 위에 붙여넣으세요.
자주 묻는 질문 (FAQ)
Ruby net/http란 무엇인가요?
Ruby의 net/http는 모든 Ruby 설치에 포함된 표준 라이브러리 HTTP 클라이언트입니다. GET, POST, multipart 업로드, SSL 및 커스텀 헤더를 처리합니다. gem 설치가 필요하지 않습니다. curl2code는 깔끔하고 선언적인 API로 일반적인 HTTP 패턴을 단순화하는 인기 gem인 HTTParty도 지원합니다.
net/http, HTTParty, Faraday 중 무엇을 사용해야 하나요?
net/http는 내장되어 있고 의존성이 없어 간단한 작업과 스크립트에 적합합니다. HTTParty는 자동 JSON 파싱이 포함된 깔끔한 DSL을 제공합니다. Faraday는 미들웨어, 어댑터 패턴 및 가장 높은 유연성을 제공합니다. 유사한 스크립팅 편의성은 curl to Python 변환기 또는 curl to PHP를 참조하세요.
Ruby에서 인증을 어떻게 처리하나요?
net/http 사용 시: request["Authorization"] = "Bearer token". Basic 인증의 경우: request.basic_auth("user", "pass"). HTTParty는 headers: { "Authorization" => "Bearer token" } 또는 basic_auth: { username: "user", password: "pass" }를 사용합니다. curl2code는 -u 및 헤더 플래그를 모두 처리합니다.
Ruby에서 multipart 폼 데이터를 어떻게 보내나요?
net/http의 경우 multipart-post gem을 사용하거나 경계 문자열과 함께 Net::HTTP::Post를 사용하여 수동으로 multipart 본문을 구성하세요. HTTParty는 body: { file: File.open("path") }로 이를 단순화합니다. curl2code는 두 라이브러리 변체 모두에 대해 -F 플래그를 변환합니다.
Ruby에서 HTTP 에러를 어떻게 처리하나요?
net/http의 경우 response.is_a?(Net::HTTPSuccess)를 확인하거나 2xx 이외의 상태에서 에러를 발생시키는 response.value를 사용하세요. HTTParty는 .success? 및 .code 메서드가 포함된 응답 객체를 반환합니다. 지속적인 연결의 경우 Errno::ECONNREFUSED 및 Net::ReadTimeout을 예외 처리하세요.
Ruby에서 동시 HTTP 요청을 어떻게 만드나요?
Ruby 표준 라이브러리는 동기 방식입니다. 기본적인 동시성을 위해 Thread.new { ... }를 사용하거나 스레드 풀을 위해 concurrent-ruby gem을 사용하세요. 비동기 I/O의 경우 Async gem과 함께 async-http를 사용합니다. Typhoeus는 병렬 요청 큐잉을 제공합니다. 내장 비동기 지원은 curl to Elixir를 참조하세요.
Ruby에서 타임아웃을 어떻게 설정하나요?
net/http 사용 시: 연결에는 http.open_timeout = 10, 응답에는 http.read_timeout = 30을 설정합니다. HTTParty는 timeout: 30 옵션을 허용합니다. 이는 curl의 --connect-timeout 및 --max-time에 매핑됩니다. 요청이 무한정 대기하는 것을 방지하기 위해 항상 타임아웃을 설정하세요.
Ruby에서 프록시를 어떻게 사용하나요?
net/http 사용 시: Net::HTTP.new(host, port, proxy_host, proxy_port). 또는 http_proxy 및 https_proxy 환경 변수를 설정하면 Ruby가 자동으로 이를 따릅니다. HTTParty는 http_proxy: 'http://proxy:8080' 옵션을 사용합니다. curl2code는 -x 플래그를 올바른 Ruby 구문으로 변환합니다.
Ruby에서 JSON 바디를 포함한 POST 요청을 보내는 방법은 무엇인가요?
curl2code를 사용하여 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL과 같은 curl POST 명령어를 Ruby로 변환하세요. 생성된 코드는 Net::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json')를 사용합니다. curl2code는 JSON 콘텐츠가 포함된 -d/--data 플래그를 자동으로 감지하고 net/http 코드에 적절한 Content-Type 헤더를 설정합니다.
Ruby에서 Bearer 토큰 인증을 추가하는 방법은 무엇인가요?
curl -H "Authorization: Bearer YOUR_TOKEN" URL을 curl2code에 입력하면 req['Authorization'] = 'Bearer YOUR_TOKEN'와 같은 인증 헤더가 포함된 net/http 코드가 생성됩니다. curl2code는 -H "Authorization: Bearer ..." 및 --oauth2-bearer 플래그 모두에서 Bearer 토큰을 감지합니다. Basic auth의 경우 -u user:pass를 사용하세요.
Ruby에서 Content-Type 헤더를 설정하는 방법은 무엇인가요?
curl2code는 curl -H "Content-Type: application/json" URL을 적절한 헤더가 포함된 net/http 코드로 변환합니다: req['Content-Type'] = 'application/json'. -d 데이터의 경우 curl은 기본적으로 application/x-www-form-urlencoded를 사용하며, -F 폼 업로드의 경우 multipart/form-data를 사용합니다. curl2code는 각각을 올바른 net/http API에 매핑합니다.