Я пытаюсь загрузить HTML-файл из Интернета и сохранить его в своем приложении для последующего (офлайн-просмотра) просмотра. Я использую следующий метод для загрузки файла, но мои NSLogs сообщают, что данные не были загружены. В чем проблема? (Предположим, что активное подключение к Интернету, предположим, предопределенный путь к каталогу локальных документов)Как загрузить файл .html для локального использования?
urlAddress = @"http://subdomain.somesite.com/profile.html";
// Create and escape the URL for the fetch
NSString *URLString = [NSString stringWithFormat:@"%@%@", @"ttp://subdomain.somesite.com/profile.html"];
NSURL *URL = [NSURL URLWithString:
[URLString stringByAddingPercentEscapesUsingEncoding:
NSASCIIStringEncoding]];
// Do the fetch - blocks!
NSData *theData = [NSData dataWithContentsOfURL:URL];
if(theData == nil) {
NSLog(@"NO DATA DOWNLOADED");
}
// Do the write
NSString *filePath = [[self documentsDirectory] stringByAppendingPathComponent:@"Profile/profile.html"];
[theData writeToFile:filePath atomically:YES];
NSLog(@"WRITING profile.html to path %@!", filePath);
Это неправильно, если у вас есть символы в параметре секции URL. Вам нужно будет вызвать stringByAddingPercentEscapesUsingEncoding для этой части URL-адреса, но не префикс http: //. –
Не знаю, изменилось ли это с момента публикации, но вы должны передать объект NSURL этому методу. Например: 'NSData * data = [NSData dataWithContentsOfURL: [NSURL URLWithString: @" http://www.google.com/index.html "]]; – polyclick