5

iPhone アプリケーションを介して Web サーバーにデータや情報を投稿できることを楽しみにしています。iPhone SDK から Web サーバーにデータを送信する方法がわかりません。

4

1 に答える 1

15

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

非同期HTTPPOSTリクエストの例を次に示します。

// 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クラスリファレンスを参照してください。

リクエストの生成後に同期リクエストを送信することもできます。

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

戻り応答としてを渡すとNSURLResponse **、ポインタが指すオブジェクトにサーバーの応答が見つかります。同期リクエストの処理中はUIがブロックされることに注意してください。

于 2010-12-02T11:02:41.463 に答える