curl을 Swift(으)로 변환

URLSession을 사용하여 curl 명령을 Swift 코드로 변환하세요. curl2code는 WebAssembly를 통해 브라우저에서 완전히 실행되므로 데이터가 비공개로 유지됩니다. Kotlin (Android)의 경우 curl to Kotlin 변환기를 사용해 보세요. Objective-C의 경우 curl to Objective-C를 참조하세요. 아래는 바로 사용 가능한 Swift 예제입니다.

브라우저에서 curl을 복사하는 방법

  1. 1

    DevTools 열기

    F12 또는 Ctrl+Shift+I를 눌러 브라우저 개발자 도구를 엽니다.

  2. 2

    Network 탭으로 이동

    Network 탭을 클릭하고 HTTP 요청을 트리거하는 동작을 수행합니다.

  3. 3

    cURL로 복사

    요청을 마우스 오른쪽 버튼으로 클릭 → CopyCopy as cURL을 선택합니다. 그런 다음 위에 붙여넣으세요.

자주 묻는 질문 (FAQ)

Swift URLSession이란 무엇인가요?

URLSession은 iOS, macOS, watchOS, tvOS를 위한 Apple의 내장 HTTP 클라이언트입니다. 데이터 작업, 다운로드, 업로드, WebSocket 및 백그라운드 전송을 처리합니다. Foundation의 일부이므로 별도의 패키지 설치가 필요하지 않습니다. HTTP/2, 캐싱 및 쿠키 관리를 지원합니다. curl2code는 모든 Swift 변환에 대해 URLSession 코드를 생성합니다.

URLSession과 Alamofire 중 어떤 것을 사용해야 하나요?

URLSession은 내장되어 있으며 대부분의 요구 사항을 충족하므로 서드파티 의존성을 피하려면 이를 사용하세요. Alamofire는 체이닝 가능한 요청 빌더, 자동 재시도, 응답 검증 및 멀티파트 업로드와 같은 편의 기능을 추가합니다. 소규모 프로젝트에는 URLSession으로 충분합니다. 유사한 내장 방식은 curl to Kotlin 변환기 또는 curl to Objective-C를 참조하세요.

Swift에서 인증을 처리하는 방법은 무엇인가요?

URLRequest에 헤더를 설정합니다: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). Basic 인증의 경우 Data("\(user):\(pass)".utf8).base64EncodedString()으로 인코딩합니다. curl2code는 -u 및 Bearer 헤더 플래그를 Swift 코드로 자동 변환합니다.

Swift에서 멀티파트 폼 데이터를 보내는 방법은 무엇인가요?

멀티파트 바디를 수동으로 구성합니다: 경계(boundary) 문자열을 생성하고, 각 필드/파일을 CRLF 구분 기호와 함께 추가한 다음 Content-Type: multipart/form-data; boundary=...를 설정합니다. 더 쉬운 멀티파트 처리를 위해 Alamofire의 upload(multipartFormData:)를 사용할 수 있습니다. curl2code는 URLSession을 위한 -F 플래그 변환을 처리합니다.

Swift에서 HTTP 오류를 처리하는 방법은 무엇인가요?

URLSession은 완료 핸들러에서 옵셔널 Error를 반환하므로 nil 여부를 확인하세요. 응답을 HTTPURLResponse로 캐스팅하고 statusCode를 확인합니다. async/await(iOS 15+)를 사용하면 do/catch 블록 내에서 try await URLSession.shared.data(for: request)를 사용하여 깔끔하게 오류를 처리할 수 있습니다.

URLSession에서 async/await를 사용하는 방법은 무엇인가요?

Swift 5.5+는 기본적으로 async/await를 지원합니다: let (data, response) = try await URLSession.shared.data(for: request). 이는 완료 핸들러 클로저를 선형 코드로 대체합니다. 동기 컨텍스트에서 호출하려면 Task { }를 사용하세요. 동시 요청의 경우 async let 또는 TaskGroup을 사용하세요. 유사한 패턴은 curl to Dart를 참조하세요.

Swift URLSession에서 타임아웃을 설정하는 방법은 무엇인가요?

URLSessionConfiguration에서 설정합니다: config.timeoutIntervalForRequest = 30(요청당) 및 config.timeoutIntervalForResource = 300(전체). 또는 개별 요청에 request.timeoutInterval = 30을 설정합니다. 이는 curl의 --max-time--connect-timeout 옵션에 매핑됩니다.

URLSession에서 프록시를 사용하는 방법은 무엇인가요?

URLSessionConfiguration에서 프록시를 설정합니다: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080]. SOCKS 프록시의 경우 kCFStreamPropertySOCKSProxy 키를 사용합니다. URLSession은 macOS/iOS 설정에 구성된 시스템 전체 프록시 설정도 따릅니다.

Swift에서 JSON 바디를 포함한 POST 요청을 보내는 방법은 무엇인가요?

curl2code를 사용하여 curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL과 같은 curl POST 명령어를 Swift로 변환하세요. 생성된 코드는 request.httpBody = try JSONEncoder().encode(data)를 사용합니다. curl2code는 JSON 콘텐츠가 포함된 -d/--data 플래그를 자동으로 감지하고 URLSession 코드에 적절한 Content-Type 헤더를 설정합니다.

Swift에서 Bearer 토큰 인증을 추가하는 방법은 무엇인가요?

curl -H "Authorization: Bearer YOUR_TOKEN" URL을 curl2code에 입력하면 request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization")와 같은 인증 헤더가 포함된 URLSession 코드가 생성됩니다. curl2code는 -H "Authorization: Bearer ..."--oauth2-bearer 플래그 모두에서 Bearer 토큰을 감지합니다. Basic auth의 경우 -u user:pass를 사용하세요.

Swift에서 Content-Type 헤더를 설정하는 방법은 무엇인가요?

curl2code는 curl -H "Content-Type: application/json" URL을 적절한 헤더가 포함된 URLSession 코드로 변환합니다: request.setValue("application/json", forHTTPHeaderField: "Content-Type"). -d 데이터의 경우 curl은 기본적으로 application/x-www-form-urlencoded를 사용하며, -F 폼 업로드의 경우 multipart/form-data를 사용합니다. curl2code는 각각을 올바른 URLSession API에 매핑합니다.

유용한 링크

curl 가이드

curl을 다른 언어로 변환