Pegando o conteúdo de uma url com Objective-C
Posted: fevereiro 4th, 2009 | Author: Carlan Calazans | Tags: aprendizado, dev, mac, objectivec, ubuntu | No Comments »Desde ontem estava tentando pegar o conteúdo de uma url qualquer e imprimir no console. Até que não é tão complicado comparando com Ruby ou Python. Minha maior dificuldade foi converter de NSMutableData para NSString. Também não sei por que cargas d’águas não está funcionando para todas as urls, a do google, por exemplo.
Estou gostando de Objective-C, mas sinto falta das facilidades de Ruby e Python, provavelmente por estar mais acostumado a elas. E é muito fácil se perder na chamada a métodos utilizando a sintaxe dos colchetes, pior se eles estiverem aninhados. Como estou programando utilizando o ubuntu a “dot-syntax” não está disponível, acredito que somente no Mac Os. É nessa hora que um bom editor de textos faz toda a diferença.
Pra quem se interessar, segue o código.
// 03-02-2009
// Carlan Calazans (carlancalazans at gmail.com)
//connection.h
@interface Connection: NSObject
{
NSString *strUrl;
NSMutableData *myReceivedData;
}
-(void) initialize;
@end
//connection.m
@implementation Connection
-(void) initialize
{
NSLog(@"Started...");
strUrl = [NSString stringWithFormat:@"http://carlancalazans.com"];
NSLog(@"URL: %@", strUrl);
myReceivedData = [[NSMutableData dataWithContentsOfURL:[NSURL URLWithString:strUrl]] autorelease];
NSLog(@"Received %d bytes of data.", [myReceivedData length]);
NSString *content = [[NSString alloc] initWithData:myReceivedData encoding:NSUTF8StringEncoding];
NSLog(@"Content received: %@", content);
NSLog(@"Finished...");
[content release];
}
@end
//main.m
int main(int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Connection *con = [[Connection alloc] init];
[con initialize];
[con release];
[pool release];
return 0;
}
Leave a Reply