Converter curl para Swift
Converta comandos curl para código Swift usando URLSession. O curl2code é executado inteiramente no seu navegador via WebAssembly — seus dados permanecem privados. Para Kotlin (Android), tente nosso conversor de curl para Kotlin. Para Objective-C, veja curl para Objective-C. Abaixo estão exemplos de Swift prontos para usar.
Como copiar o curl do seu navegador
- 1
Abra o DevTools
Pressione F12 ou Ctrl+Shift+I para abrir as ferramentas de desenvolvedor do seu navegador.
- 2
Vá para a aba Network
Clique na aba Network e realize a ação que dispara a requisição HTTP.
- 3
Copiar como cURL
Clique com o botão direito na requisição → Copy → Copy as cURL. Depois cole acima.
Perguntas Frequentes
O que é o Swift URLSession?
URLSession é o cliente HTTP nativo da Apple para iOS, macOS, watchOS e tvOS. Ele gerencia tarefas de dados, downloads, uploads, WebSocket e transferências em segundo plano. Nenhuma instalação de pacote é necessária — faz parte do Foundation. Suporta HTTP/2, cache e gerenciamento de cookies. O curl2code gera código URLSession para todas as conversões Swift.
URLSession vs Alamofire — qual devo usar?
URLSession é integrado e atende à maioria das necessidades — use-o para evitar dependências de terceiros. Alamofire adiciona conveniência: construtores de requisição encadeáveis, retentativa automática, validação de resposta e uploads multipart. Para projetos pequenos, o URLSession é suficiente. Para abordagens nativas semelhantes, consulte nosso conversor de curl para Kotlin ou curl para Objective-C.
Como lidar com autenticação no Swift?
Defina o cabeçalho no URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). Para autenticação Basic, codifique com Data("\(user):\(pass)".utf8).base64EncodedString(). O curl2code converte as flags -u e o cabeçalho Bearer para código Swift automaticamente.
Como enviar dados de formulário multipart no Swift?
Construa o corpo multipart manualmente: gere uma string de boundary, anexe cada campo/arquivo com separadores CRLF e defina Content-Type: multipart/form-data; boundary=.... Para multipart mais fácil, use o upload(multipartFormData:) do Alamofire. O curl2code lida com a conversão da flag -F para URLSession.
Como lidar com erros HTTP no Swift?
O URLSession retorna um Error opcional nos completions — verifique se é nulo. Converta a resposta para HTTPURLResponse e verifique o statusCode. Com async/await (iOS 15+), use try await URLSession.shared.data(for: request) em um bloco do/catch para um tratamento de erros limpo.
Como usar async/await com URLSession?
O Swift 5.5+ suporta async/await nativamente: let (data, response) = try await URLSession.shared.data(for: request). Isso substitui os closures de completion handler por código linear. Use Task { } para chamar de contextos síncronos. Para requisições concorrentes, use async let ou TaskGroup. Para padrões semelhantes, veja curl para Dart.
Como definir timeouts no Swift URLSession?
Configure no URLSessionConfiguration: config.timeoutIntervalForRequest = 30 (por requisição) e config.timeoutIntervalForResource = 300 (total). Ou defina request.timeoutInterval = 30 em requisições individuais. Estes mapeiam para as opções --max-time e --connect-timeout do curl.
Como usar um proxy com URLSession?
Defina o proxy no URLSessionConfiguration: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080]. Para proxies SOCKS, use as chaves kCFStreamPropertySOCKSProxy. O URLSession também respeita as configurações de proxy de todo o sistema configuradas no macOS/iOS.
Como enviar uma requisição POST com corpo JSON em Swift?
Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL para Swift usando o curl2code. O código gerado usa request.httpBody = try JSONEncoder().encode(data). O curl2code detecta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código do URLSession.
Como adicionar autorização com token Bearer em Swift?
Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e ele gerará o código do URLSession com o cabeçalho de autenticação: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). O curl2code detecta tokens Bearer tanto de flags -H "Authorization: Bearer ..." quanto de --oauth2-bearer. Para Basic auth, use -u user:pass.
Como definir o cabeçalho Content-Type em Swift?
O curl2code converte curl -H "Content-Type: application/json" URL para o código do URLSession com o cabeçalho correto: request.setValue("application/json", forHTTPHeaderField: "Content-Type"). Para dados -d, o curl define por padrão application/x-www-form-urlencoded; para uploads de formulário com -F, ele usa multipart/form-data. O curl2code mapeia cada um para a API correta do URLSession.