Converter curl para Objective-C

Converta comandos curl para código Objective-C utilizando NSURLSession. O curl2code é executado inteiramente no seu navegador através de WebAssembly — os seus dados permanecem privados. Para Swift, experimente o nosso conversor de curl para Swift. Para C, veja curl para C. Abaixo encontram-se exemplos de Objective-C prontos a usar.

Como copiar o curl do seu navegador

  1. 1

    Abrir as DevTools

    Prima F12 ou Ctrl+Shift+I para abrir as ferramentas de programador do seu navegador.

  2. 2

    Ir para o separador Network

    Clique no separador Network e realize a ação que despoleta o pedido HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito no pedido → CopyCopy as cURL. Depois cole-o acima.

Perguntas Frequentes

O que é o NSURLSession?

NSURLSession é a API da framework Foundation da Apple para redes HTTP em Objective-C (e Swift). Gere tarefas de dados, downloads, uploads e transferências em segundo plano. Disponível no iOS 7+, macOS 10.9+. Não é necessária nenhuma dependência de terceiros — é a forma padrão de fazer pedidos HTTP nas plataformas Apple. O curl2code gera código NSURLSession para Objective-C.

NSURLSession vs AFNetworking — qual usar?

NSURLSession é a solução nativa — suficiente para a maioria das necessidades e com zero dependências. AFNetworking foi historicamente popular, mas está agora em modo de manutenção; o seu sucessor é o Alamofire (Swift). Para novos projetos Objective-C, recomenda-se o NSURLSession. Para Swift, consulte o nosso conversor de curl para Swift.

Como gerir a autenticação em Objective-C?

Defina o cabeçalho no NSMutableURLRequest: [request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]. Para autenticação Basic, codifique as credenciais com NSData e base64EncodedStringWithOptions:. O curl2code converte as flags -u e Bearer para a sintaxe correta de Objective-C.

Como enviar dados de formulário multipart em Objective-C?

Construa o corpo multipart com NSMutableData: anexe as strings de boundary, dados de campos e dados de ficheiros com os separadores CRLF adequados. Defina o Content-Type com a boundary. Isto é manual, mas dá controlo total. O AFNetworking simplifica isto com o AFHTTPRequestSerializer.

Como gerir erros HTTP em Objective-C?

Os completion handlers do NSURLSession fornecem um parâmetro NSError — verifique-o para erros de rede/transporte. Converta a resposta para NSHTTPURLResponse e verifique o statusCode. Use os métodos delegados do NSURLSession para uma gestão de erros mais granular, incluindo desafios de autenticação e redirecionamentos.

Como trabalhar com blocos de conclusão no NSURLSession?

O NSURLSession utiliza callbacks baseados em blocos: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. Chame sempre [task resume] para iniciar. Para pedidos sequenciais, aninhe blocos ou use grupos de despacho com dispatch_group_notify.

Como definir timeouts em Objective-C?

Defina no NSURLSessionConfiguration: config.timeoutIntervalForRequest = 30 e config.timeoutIntervalForResource = 300. Ou por pedido: request.timeoutInterval = 30. Os erros de timeout chegam como NSURLErrorTimedOut no parâmetro de erro. Estes mapeiam para a opção --max-time do curl.

Como usar um proxy com NSURLSession?

Defina connectionProxyDictionary no NSURLSessionConfiguration com chaves como (NSString *)kCFNetworkProxiesHTTPProxy e a porta. O NSURLSession respeita as definições de proxy de todo o sistema por padrão no macOS e iOS. Para ficheiros PAC, configure através das preferências do sistema.

Como enviar um pedido POST com um corpo JSON em Objective-C?

Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL para Objective-C usando o curl2code. O código gerado utiliza [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:dict options:0 error:nil]]. O curl2code deteta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código NSURLSession.

Como adicionar autorização com token Bearer em Objective-C?

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e este gera código NSURLSession com o cabeçalho de autenticação: [request setValue:@"Bearer TOKEN" forHTTPHeaderField:@"Authorization"]. O curl2code deteta tokens Bearer tanto de flags -H "Authorization: Bearer ..." como de --oauth2-bearer. Para Basic auth, utilize -u user:pass.

Como definir o cabeçalho Content-Type em Objective-C?

O curl2code converte curl -H "Content-Type: application/json" URL para código NSURLSession com o cabeçalho correto: [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]. Para dados -d, o curl assume por defeito application/x-www-form-urlencoded; para envios de formulários -F, utiliza multipart/form-data. O curl2code mapeia cada um para a API NSURLSession correta.

Links Úteis

Guias do curl

Converter curl para Outras Linguagens