如何从控制台应用程序或库中获取网页内容?我的意思是,没有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" );
由于
答案 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)