Agradezco las gracias por el artículo Convert NSData bytes to NSString?, especialmente para @ christo16. Anteriormente dependía de ASIHttpRequest solo para obtener valor del servidor PHP. Ahora usando simplemente esta línea de código:¿Por qué NSData dataWithContentsOfURL a veces devuelve valor NULL?
NSString *pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://www.apple.com"]]
Puedo obtener la funcionalidad que quería.
Pero, ¿por qué a veces esa línea causa pageContents ser NULL. Ya cambio esa línea en esto:
NSString *fullUrl = [NSString stringWithFormat:@"http://www.apple.com"];
NSURL *url = [[NSURL alloc] initWithString:fullUrl];
NSData *pageContents;
NSString *response = NULL;
while(response==NULL)
{
pageContents = [NSData dataWithContentsOfURL: [NSURL URLWithString:fullUrl]];
response = [NSString stringWithUTF8String:[pageContents bytes]];
NSLog(@"content = %@", response);
}
¿Hay alguna forma mejor de hacerlo? Hasta ahora, no tengo ningún problema. Me pregunto si hay una forma más elegante de lograr el mismo resultado
Gracias
La desventaja de ese one-liner es que bloquea su UI, posiblemente por un largo tiempo. El bucle es aún peor: si el servidor no responde a las conexiones, entonces bloquearía la IU de manera efectiva para siempre (hasta que SpringBoard se canse y mate su proceso). –