.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.26 2009

ネットワークプログラミング入門編(2)

Tasaki です。

ネットワークプログラミング入門編の2回目は、リクエストとコネクションの作成法について解説します。

前回、リクエストとコネクションそれぞれに対応するクラス NSURLRequest、NSURLConnection をご紹介しましたが、これを適切に初期化してやるだけで HTTP リクエストをサーバに送信することができます。

まずはリクエストからですが、初期化には以下のメソッドを使用します。

- ( id ) initWithURL:( NSURL *) url cachePolicy:( NSURLRequestCachePolicy ) cachePolicy timeoutInterval:( NSTimeInterval ) timeoutInterval;
+ ( id ) requestWithURL:( NSURL *) url cachePolicy:( NSURLRequestCachePolicy ) cachePolicy timeoutInterval:( NSTimeInterval ) timeoutInterval;

url には、URL オブジェクトを渡します。詳細は後述します。cachePolicy はURLリクエストのキャッシュデータの読み込みに関するランタイムの動作を指定します。例えばキャッシュデータを使用しない場合には、NSURLRequestReloadIgnoringLocalCacheData (長過ぎ)を指定します。timeoutInterval には、リクエストを時間切れとみなすまでの待ち時間(秒数)を指定します。

URL オブジェクトについてですが、これは URL を保持するためのオブジェクトで、以下のように URL を文字列として渡して初期化します。

+ ( id ) URLWithString:( NSString *) URLString;
- ( id ) initWithString:( NSString *) URLString;

このオブジェクトは、与えられた URL のホスト名やクエリをその部分だけ取得することができる便利なオブジェクトではありますが、今回のように直接 URL の全文を与える場合には、かえって回りくどいコードになってしまいます。

次にコネクションのイニシャライザを以下に示します。

+ ( NSURLConnection *) connectionWithRequest:( NSURLRequest *) request delegate:( id ) delegate;
- ( id ) initWithRequest:( NSURLRequest *) request delegate:( id ) delegate;

request には、予め作成しておいたリクエストを delegate には、レスポンスやデータがサーバから渡されたときに対処するデリゲートオブジェクトを指定します。
なお、サーバとの通信には、同期通信と非同期通信の2通りがありますが、今回ご紹介したのは非同期通信を行う場合のものです。
この返り値として、有効なコネクションオブジェクトが返されると、サーバに対してリクエストの送信が行われます。

これを踏まえて、簡単なリクエスト送信の流れを以下に示します。

- ( BOOL ) requestToServer:( NSString *) urlString {
NSURLRequest *request = [ NSURLRequest requestWithURL:[ NSURL URLwithString: urlString ] cachePolicy: NSURLRequestReloadIgnoringLocalCacheData timeoutInterval: 60.0 ];
if( request == nil ) {
  return NO;
 }
NSURLConnection *connection = [ NSURLConnection connectionWithRequest: request delegate: self ];
return ( connection != nil );
}


次回はレスポンスの取得についてですが、デリゲートプログラミングに馴染んでいれば、解説の必要はないかもしれません。

関連記事
スポンサーサイト

Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/60-2b073dbe

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。