dataWithContentsOfURL不检索数据

Gig*_*igi 3 html iphone objective-c

我正在尝试获取此页面的源代码(http://www.sanmarinocard.sm),但dataWithContentsOfURL不会检索数据.

NSURL *url = [NSURL URLWithString:@"http://www.sanmarinocard.sm"];
NSData *responseData = [NSData dataWithContentsOfURL:url];
NSString *result = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

直到前几天一切正常,但从昨天开始没有结果.

你能帮助我吗?谢谢.

小智 5

是的,它也适合我.也许服务器暂时不可用.

不建议使用dataWithContentsOfURL:因为它是同步的并且会阻止你的应用程序正常工作; 如果服务器没有响应,它可能会阻止你的应用程序很长一段时间.

首选方法是使用NSMutableURLRequest并发送异步请求.这将允许您的应用程序在加载时保持响应,还可以让您设置超时间隔并更轻松地处理任何错误.

NSURL *url = [NSURL URLWithString:@"http://www.sanmarinocard.sm"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setTimeoutInterval: 10.0]; // Will timeout after 10 seconds
[NSURLConnection sendAsynchronousRequest:request
                                   queue:[NSOperationQueue currentQueue]
                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

    if (data != nil && error == nil)
    {
        NSString *sourceHTML = [[NSString alloc] initWithData:data];
        // It worked, your source HTML is in sourceHTML
    }
    else
    {
        // There was an error, alert the user
    }

   }];
Run Code Online (Sandbox Code Playgroud)