网站无法完全下载 - 使用stringWithContentsOfURL:

时间:2013-05-31 10:00:31

标签: ios nsstring nsurlconnection

我正在尝试下载一个网站,但只获得整个网站的四分之一。

    NSString *tagiString = @"http://www.tagesanzeiger.ch";
    NSURL *tagiURL = [NSURL URLWithString:tagiString];
    NSError *error;
    NSString *text =[NSString stringWithContentsOfURL:tagiURL
                                             encoding:NSASCIIStringEncoding
                                                error:&error];

我没有收到任何错误,表明下载没有完成。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我建议不要使用stringWithContentsOfURL。相反,您应该使用iOS的内置网络类,它们可以更好地控制下载操作。例如,对于stringWithContentsOfURL,您无法调整或设置超时,这意味着在慢速连接时,您的下载很容易失败(这可能就是这里发生的事情)。

默认情况下stringWithContentsOfURL也不是异步的,所以除非您在辅助线程上运行该代码,否则您将暂停UI(这很糟糕)。

这个现有问题 - Making stringWithContentsOfURL asynchronous - Is it safe? - 有一些示例代码,向您展示如何使用更合适的NSURLConnection类将网站下载为字符串。它将使您更容易进行错误处理和调试。