IOS получить источник страницы из Интернета? - PullRequest
1 голос
/ 18 мая 2011

Я работаю над приложением и пытаюсь отобразить часть веб-страницы.

Моя идея - сначала получить исходный код страницы, а затем проанализировать его!

Я уже нашел полезный анализатор HTML для него, но все еще не могу найти источник страницы?

Все, что я нашел, это про UIWebview. Что-то вроде:

uiwebview = [[UIWebView loadRequest:[NSURLRequest requestWithURL:url]]; 

Ответы [ 2 ]

9 голосов
/ 18 мая 2011

Использование

NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"] encoding:NSUTF8StringEncoding error:nil];
6 голосов
/ 18 мая 2011

Недостатком использования +stringWithContentsOfURL: в основном потоке является то, что ваш пользовательский интерфейс будет блокироваться, пока запрос активен.Это становится особенно проблематичным, когда пользователь находится в сети с высокой задержкой, когда сервер медленно отвечает, или если запрос заканчивается тайм-аутом.В последнем случае пользователь может видеть блок пользовательского интерфейса в течение очень долгого времени.

В методе +stringWithContentsOfURL: также отсутствует способ предоставить вам информацию об ошибке в случае, если сервер не возвращает статус 200.

Чтобы выполнить запрос асинхронно, не блокируя пользовательский интерфейс, используйте NSURLConnection и захватите данные в делегате:

- ( void )connection: (NSURLConnection *)connection didReceiveData: (NSData *)data
{
    // receivedData is an NSMutableData object
    [ receivedData appendData: data ];
}

И затем начните синтаксический анализ после завершения соединения:

- ( void )connectionDidFinishLoading: (NSURLConnection *)connection
{
    [ self parseHTMLData: receivedData ];
}

Руководство по программированию системы загрузки URL поможет вам начать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...