2010-12-02 18 views

答えて

15

どのような方法でデータをWebサーバーに送信するかによって異なります。 HTTP POSTメソッドを使用する場合は、(少なくとも)2つのオプションがあります。同期または非同期のNSURLRequestを使用できます。データのみを送信し、サーバーからの応答を待つ必要がない場合は、非同期のものを使用することを強くお勧めします。これは、ユーザーインターフェイスをブロックしないためです。私。それは "バックグラウンドで"実行され、ユーザーはあなたのアプリを使用して(つまり、そのアプリケーションとやりとりしています)続けることができます。非同期リクエストは、リクエストが送信、キャンセル、完了したことをアプリに伝えるために委譲を使用します。必要に応じて、代理メソッドを使用してレスポンスを取得することもできます。ここで

は、非同期のHTTP POSTリクエストの例です:

// define your form fields here: 
NSString *content = @"field1=42&field2=Hello"; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.example.com/form.php"]]; 
[urlRequest setHTTPMethod:@"POST"]; 
[urlRequest setHTTPBody:[content dataUsingEncoding:NSISOLatin1StringEncoding]]; 

// generates an autoreleased NSURLConnection 
[NSURLConnection connectionWithRequest:request delegate:self]; 

デリゲートメソッドの詳細についてはNSURLConnection Class Referenceを参照してください。

また、要求を生成した後に同期要求を送信することができます。

[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

あなたが応答を返すようNSURLResponse **を渡す場合は、そのポインタが指すオブジェクト内のサーバーの応答があります。同期要求が処理されている間、UIはブロックされることに注意してください。

関連する問題