Convertir curl a Swift

Convierta comandos curl a código Swift utilizando URLSession. curl2code se ejecuta completamente en su navegador a través de WebAssembly; sus datos permanecen privados. Para Kotlin (Android), pruebe nuestro conversor de curl a Kotlin. Para Objective-C, vea curl a Objective-C. A continuación se muestran ejemplos de Swift listos para usar.

Cómo copiar curl desde su navegador

  1. 1

    Abrir DevTools

    Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.

  2. 2

    Vaya a la pestaña Network

    Haga clic en la pestaña Network y realice la acción que activa la solicitud HTTP.

  3. 3

    Copiar como cURL

    Haga clic derecho en la solicitud → CopyCopy as cURL. Luego péguelo arriba.

Preguntas frecuentes

¿Qué es Swift URLSession?

URLSession es el cliente HTTP integrado de Apple para iOS, macOS, watchOS y tvOS. Maneja tareas de datos, descargas, subidas, WebSocket y transferencias en segundo plano. No se necesita instalación de paquetes — es parte de Foundation. Soporta HTTP/2, almacenamiento en caché y gestión de cookies. curl2code genera código URLSession para todas las conversiones de Swift.

URLSession vs Alamofire — ¿cuál debería usar?

URLSession está integrado y cubre la mayoría de las necesidades — úsalo para evitar dependencias de terceros. Alamofire añade comodidad: constructores de solicitudes encadenables, reintento automático, validación de respuestas y subidas multipart. Para proyectos pequeños, URLSession es suficiente. Para enfoques integrados similares, consulta nuestro convertidor de curl a Kotlin o curl a Objective-C.

¿Cómo manejar la autenticación en Swift?

Establece el encabezado en URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). Para autenticación Basic, codifica con Data("\(user):\(pass)".utf8).base64EncodedString(). curl2code convierte automáticamente los flags -u y el encabezado Bearer a código Swift.

¿Cómo enviar datos de formulario multipart en Swift?

Construye el cuerpo multipart manualmente: genera una cadena de límite (boundary), añade cada campo/archivo con separadores CRLF y establece Content-Type: multipart/form-data; boundary=.... Para un multipart más sencillo, usa upload(multipartFormData:) de Alamofire. curl2code maneja la conversión del flag -F para URLSession.

¿Cómo manejar errores HTTP en Swift?

URLSession devuelve un Error opcional en los cierres (completions) — verifica si es nil. Convierte la respuesta a HTTPURLResponse y comprueba el statusCode. Con async/await (iOS 15+), usa try await URLSession.shared.data(for: request) en un bloque do/catch para un manejo de errores limpio.

¿Cómo usar async/await con URLSession?

Swift 5.5+ soporta async/await de forma nativa: let (data, response) = try await URLSession.shared.data(for: request). Esto reemplaza los cierres de manejadores de finalización con código lineal. Usa Task { } para llamar desde contextos síncronos. Para solicitudes concurrentes, usa async let o TaskGroup. Para patrones similares, consulta curl a Dart.

¿Cómo establecer tiempos de espera en Swift URLSession?

Configúralo en URLSessionConfiguration: config.timeoutIntervalForRequest = 30 (por solicitud) y config.timeoutIntervalForResource = 300 (total). O establece request.timeoutInterval = 30 en solicitudes individuales. Estos se mapean a las opciones --max-time y --connect-timeout de curl.

¿Cómo usar un proxy con URLSession?

Establece el proxy en URLSessionConfiguration: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080]. Para proxies SOCKS, usa las claves kCFStreamPropertySOCKSProxy. URLSession también respeta la configuración de proxy de todo el sistema configurada en los ajustes de macOS/iOS.

¿Cómo enviar una solicitud POST con un cuerpo JSON en Swift?

Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL a Swift usando curl2code. El código generado utiliza request.httpBody = try JSONEncoder().encode(data). curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de URLSession.

¿Cómo añadir autorización con token Bearer en Swift?

Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de URLSession con el encabezado de autorización: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). curl2code detecta tokens Bearer tanto en los flags -H "Authorization: Bearer ..." como en --oauth2-bearer. Para Basic auth, utiliza -u user:pass.

¿Cómo configurar el encabezado Content-Type en Swift?

curl2code convierte curl -H "Content-Type: application/json" URL a código de URLSession con el encabezado correcto: request.setValue("application/json", forHTTPHeaderField: "Content-Type"). Para los datos de -d, curl utiliza por defecto application/x-www-form-urlencoded; para subidas de formularios con -F, utiliza multipart/form-data. curl2code mapea cada uno a la API de URLSession correcta.

Enlaces útiles

Guías de curl

Convertir curl a otros lenguajes