ヘッダのカスタマイズや独自処理をしたいときの AFNetworking 2.0 の使い方

ヘッダのカスタマイズや独自処理をしたいときの AFNetworking 2.0 の使い方

普通の使い方

AFHTTPRequestOperationManager というクラスを主に利用します。 GETで通信したい場合は、以下のように GET:parameters:success:failure: メソッドを呼び出すことで、リクエストを開始することができます。 parameters: に NSDictionary 型のデータを渡せば、それをよしなにURIパラメータやBODYに付与してくれます。

サーバとの通信に成功しレスポンスが返って来た場合には、success: で指定したブロックが呼び出されます。また、ネットワークに繋がっていなかったり、指定したURLのサーバホストの名前解決がでいないなどサーバとの通信に失敗した場合は、failure: で指定したブロックが呼び出されます。 ちなみに、AFHTTPRequestOperation からステータスコードやレスポンスヘッダといった情報を取り出すことができます。

GET 以外には、POST, DELETE, PUT 用のメソッドも用意されています。

ヘッダのカスタマイズ

さて、ここからカスタマイズ編です。リクエスト時のヘッダをカスタマイズしたい場合は、以下のように AFHTTPRequestOperationManagerrequestSelializer というプロパティに対して、setValue:forHTTPHeaderField: を呼び出します。 NSMutableURLRequest にヘッダを設定する場合と似てますね。

ちなみに、BASIC認証したい場合は、以下のメソッドが使えます。

NSURLRequest のカスタマイズ

リクエストを開始する前にNSURLRequestにある処理を実行したいという場合があると思います。 例えば、Parse を使っていてリクエストヘッダにアクセストークンを付与したい場合、以下のように行うことができます。

最初に紹介したやり方よりは記述量が多くなってしまいますが、必ず毎回実行したい処理ならAFHTTPRequestOperationManagerのカテゴリ拡張もしくはサブクラスを作っても良いかもしれません。

Reference

  • http://qiita.com/asakahara/items/9cb68bef56ca70b505c6
  • http://qiita.com/jtemplej/items/c3c25a5301c7250305fe
    • Request Serialization, Response Serialization の説明がわかりやすい

Leave a Reply

Your email address will not be published. Required fields are marked *