curl을 Rust(으)로 변환
curl2code는 reqwest 크레이트를 사용하여 curl 명령을 Rust 코드로 변환합니다. 변환은 완전한 개인 정보 보호를 위해 WebAssembly를 통해 브라우저에서 실행됩니다. Go의 경우 curl to Go 변환기를 확인하세요. C의 경우 curl to C를 참조하세요. 아래는 async/await를 사용한 실용적인 Rust 예제입니다.
브라우저에서 curl을 복사하는 방법
- 1
DevTools 열기
F12 또는 Ctrl+Shift+I를 눌러 브라우저 개발자 도구를 엽니다.
- 2
Network 탭으로 이동
Network 탭을 클릭하고 HTTP 요청을 트리거하는 동작을 수행합니다.
- 3
cURL로 복사
요청을 마우스 오른쪽 버튼으로 클릭 → Copy → Copy as cURL을 선택합니다. 그런 다음 위에 붙여넣으세요.
자주 묻는 질문 (FAQ)
Rust reqwest란 무엇인가요?
reqwest는 hyper를 기반으로 구축된 Rust에서 가장 인기 있는 HTTP 클라이언트입니다. 블로킹 및 비동기 API, serde를 통한 자동 JSON 직렬화, TLS, 쿠키 처리 및 프록시 지원을 제공합니다. cargo add reqwest --features json으로 추가할 수 있습니다. curl2code가 Rust 변환 시 사용하는 기본 라이브러리입니다.
reqwest, hyper, ureq 중 무엇을 사용해야 하나요?
reqwest는 고수준이고 기능이 풍부하며 비동기를 지원하여 대부분의 프로젝트에 적합합니다. hyper는 저수준이며 최대한의 제어권을 제공합니다(reqwest가 이를 기반으로 구축됨). ureq는 비동기 런타임 의존성이 없는 최소한의 블로킹 전용 클라이언트입니다. 유사한 표준 라이브러리 방식은 curl to Go 또는 curl to C를 참조하세요.
Rust에서 인증을 어떻게 처리하나요?
Bearer 인증: client.get(url).bearer_auth(token). Basic 인증: client.get(url).basic_auth(user, Some(pass)). 또는 .header("Authorization", value)로 헤더를 수동 설정하세요. curl2code는 -u 및 -H 'Authorization: ...' 플래그를 적절한 reqwest 메서드로 변환합니다.
Rust에서 multipart 폼 데이터를 어떻게 보내나요?
reqwest::multipart::Form을 사용하세요. Form::new()로 생성하고, .text("key", "value")로 텍스트 필드를, .file("field", path).await?로 파일을 추가합니다. 이를 client.post(url).multipart(form)에 전달하세요. curl2code는 reqwest multipart를 위한 -F 플래그를 처리합니다.
Rust에서 HTTP 에러를 어떻게 처리하나요?
reqwest는 성공 시 Response를, 실패 시 reqwest::Error를 감싸는 Result를 반환합니다 — 전파를 위해 ? 연산자를 사용하세요. response.status().is_success()를 확인하거나, 2xx가 아닌 코드를 에러로 변환하는 response.error_for_status()?를 호출하세요. Rust의 타입 시스템은 모든 에러 경로가 컴파일 타임에 명시적으로 처리되도록 보장합니다.
reqwest는 어떤 비동기 런타임이 필요한가요?
reqwest는 기본적으로 tokio 런타임을 필요로 합니다. main 함수에 #[tokio::main] 어노테이션을 추가하세요. 비동기 런타임 없이 블로킹 방식으로 사용하려면 blocking 기능을 활성화하고 reqwest::blocking::Client를 사용합니다. curl2code는 기본적으로 tokio를 사용하는 비동기 코드를 생성합니다. 다른 비동기 생태계는 curl to Go(고루틴)를 참조하세요.
Rust reqwest에서 타임아웃을 어떻게 설정하나요?
클라이언트에 설정: Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. 요청별 설정: client.get(url).timeout(Duration::from_secs(5)). 이는 curl의 --max-time 및 --connect-timeout 플래그에 매핑됩니다.
reqwest에서 프록시를 어떻게 사용하나요?
클라이언트 빌더에서 프록시를 설정하세요: Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?. HTTP, HTTPS 및 SOCKS5 프록시를 지원합니다. reqwest는 또한 기본적으로 HTTP_PROXY 및 HTTPS_PROXY 환경 변수를 따릅니다. curl2code는 -x 플래그를 프록시 구성으로 변환합니다.
Rust에서 JSON 바디를 포함한 POST 요청을 보내는 방법은 무엇인가요?
curl2code를 사용하여 curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL과 같은 curl POST 명령어를 Rust로 변환하세요. 생성된 코드는 client.post(url).json(&data).send().await?를 사용합니다. curl2code는 JSON 콘텐츠가 포함된 -d/--data 플래그를 자동으로 감지하고 reqwest 코드에 적절한 Content-Type 헤더를 설정합니다.
Rust에서 Bearer 토큰 인증을 추가하는 방법은 무엇인가요?
curl -H "Authorization: Bearer YOUR_TOKEN" URL을 curl2code에 입력하면 .bearer_auth("YOUR_TOKEN")와 같은 인증 헤더가 포함된 reqwest 코드가 생성됩니다. curl2code는 -H "Authorization: Bearer ..." 및 --oauth2-bearer 플래그 모두에서 Bearer 토큰을 감지합니다. Basic auth의 경우 -u user:pass를 사용하세요.
Rust에서 Content-Type 헤더를 설정하는 방법은 무엇인가요?
curl2code는 curl -H "Content-Type: application/json" URL을 적절한 헤더가 포함된 reqwest 코드로 변환합니다: .header("Content-Type", "application/json"). -d 데이터의 경우 curl은 기본적으로 application/x-www-form-urlencoded를 사용하며, -F 폼 업로드의 경우 multipart/form-data를 사용합니다. curl2code는 각각을 올바른 reqwest API에 매핑합니다.