我正在尝试下载一个网站,但只获得整个网站的四分之一。
NSString *tagiString = @"http://www.tagesanzeiger.ch";
NSURL *tagiURL = [NSURL URLWithString:tagiString];
NSError *error;
NSString *text =[NSString stringWithContentsOfURL:tagiURL
encoding:NSASCIIStringEncoding
error:&error];
我没有收到任何错误,表明下载没有完成。 有什么想法吗?
答案 0 :(得分:1)
我建议不要使用stringWithContentsOfURL
。相反,您应该使用iOS的内置网络类,它们可以更好地控制下载操作。例如,对于stringWithContentsOfURL
,您无法调整或设置超时,这意味着在慢速连接时,您的下载很容易失败(这可能就是这里发生的事情)。
默认情况下stringWithContentsOfURL
也不是异步的,所以除非您在辅助线程上运行该代码,否则您将暂停UI(这很糟糕)。
这个现有问题 - Making stringWithContentsOfURL asynchronous - Is it safe? - 有一些示例代码,向您展示如何使用更合适的NSURLConnection
类将网站下载为字符串。它将使您更容易进行错误处理和调试。