目标C:获取页面内容

时间:2011-04-08 05:26:33

标签: objective-c

如何从控制台应用程序或库中获取网页内容?我的意思是,没有UI elemens。

这就是我在python中的意思

from urllib import urlopen
str = urlopen("http://www.google.com").read()

或php

$str = file_get_contents('http://www.google.com');

或c#

using System.Net;
WebClient client = new WebClient();
string str = client.DownloadString( "http://www.google.com" );

由于

3 个答案:

答案 0 :(得分:5)

NSURLConnection是在Cocoa中使用的类,它的使用非常简单......

首先,您需要创建一个NSURLRequest实例,其中包含您希望阅读的URL ...

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.stackoverflow.com"]

创建一个NSURLConnection来处理您的请求......

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

注意init方法的第二个参数是委托。该委托需要实现以下一组方法......

connection:didReceiveResponse:
connection:didReceiveData:
connection:didFailWithError:
connectionDidFinishLoading:

启动NSURLConnection后,将开始下载。您可以通过向对象发送取消消息随时取消它。

一旦有了要读取的数据,连接就会调用连接:didReceiveData:方法在它的委托上传递一个NSData实例作为第二个参数。当您的连接流数据时,将多次调用此方法,因此使用NSMutableData实例来聚合响应...

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [mutableData appendData data];
}

一旦读取了URL的完整内容,就会调用connectionDidFinishLoading:(NSURLConnection *)方法。此时释放连接并使用您的数据。

答案 1 :(得分:1)

查看NSURLConnection的文档。这是获取它的异步方式。如果您不介意阻止该线程,您还可以在NSString上查看 stringWithContentsOfURL:encoding:error:

答案 2 :(得分:-1)

在这里回答:

objective c pulling content from website

请记住添加框架Webkit