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

これを行う 1 つの方法は次のとおりですが、Ben Gottliebが指摘するように、これは synchronouseRequest であり、プログラムの実行がこの関数呼び出しの戻りを待機する原因となり、アプリケーションが応答しなくなる可能性があります。

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 に答える