3

假设我想获取的 HTML

http://www.google.com

使用 Cocoa Touch 框架的一些内置类作为字符串。

我需要编写的最少代码量是多少?

我已经走了这么远,但不知道如何进步。必须有更简单的方法。

CFHTTPMessageRef req;
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
req = CFHTTPMessageCreateRequest(kCFAllocatorDefault,
                                 CFSTR("GET"),
                                 (CFURLRef)url,
                                 kCFHTTPVersion1_1);
4

2 回答 2

9

最快的方法是使用 NSString 的+stringWithContentsOfURL:方法。但是,这是一个模态调用,您的应用程序在运行时将无响应。您可以将其移至后台线程,或使用 NSURLConnection 类发出正确的异步请求。

于 2008-10-28T00:47:28.513 回答
5

一种方法如下,但是正如Ben Gottlieb指出的那样,这是一个同步请求,将导致您的程序执行等待此函数调用的返回,可能使您的应用程序无响应。

NSURL *url = [ NSURL URLWithString: @"http://www.google.com"]; 
NSURLRequest *req = [ NSURLRequest requestWithURL:url
                                      cachePolicy:NSURLRequestReloadIgnoringCacheData
                                  timeoutInterval:30.0 ];
NSError *err;
NSURLResponse *res;
NSData *d = [ NSURLConnection sendSynchronousRequest:req
                                   returningResponse:&res
                                               error:&err ];

您可以在 Apple dev-docs 上找到有关编写正确的委托方法来处理异步连接的信息。

于 2008-10-28T04:27:53.997 回答