4

If-Modified-Sinceによって発行されたGETリクエストを含むhttpヘッダーを送信したい[RKObjectManager getObjectsAtPath:...]

移行ガイドには、RKObjectManagerインスタンスに「グローバル」なデフォルトのリクエストヘッダーのみを設定できると 記載されています。

RKObjectManager* objectManager = [RKObjectManager managerWithBaseURLString:url];
[objectManager.HTTPClient setDefaultHeader:@"If-Modified-Since" value:@"Sat, 29 Dec 2012 19:43:31 GMT"];

(経由で)一元化されたRKObjetManagerインスタンスを維持したいので[RKObjectManager sharedManaged]、これは実際には良いオプションではありません。

各リクエストの前に特定のものを作成しRKObjectManager、httpヘッダーを「デフォルト」として設定することが唯一の解決策ですか、それともより良い方法がありますか?

4

1 に答える 1

15

ここにはいくつかのオプションがあります。

  1. NSURLRequestを使用してオブジェクトを取得しrequestWithObject:method:path:parameters:、適切に構成してから、またはNSURLRequestを呼び出します。これにより、リクエストを1回限りで構成できます。objectRequestOperationWithRequest:success:failure:managedObjectRequestOperationWithRequest:managedObjectContext:success:failure:
  2. RKHTTPRequestOperationのviaのカスタムサブクラスを構成setHTTPOperationClass:RKObjectManagerます。これにより、オブジェクトマネージャがリクエストを行うときにすべてのNSURLRequestを構成できるサブクラスをフックして、構成を一元化できます。
  3. 最新の開発ブランチでRKObjectRequestOperationは、選択したリクエストに使用されるマネージャーにのサブクラスを登録することもできます。これにより、オブジェクトリクエストの操作レベルでカスタマイズを一元化できます。

オプション1または2は、アウトライン化するHTTPレベルの懸念事項におそらく最も適切ですが、オブジェクトマッピングレベルで同じ種類のカスタマイズを行うための代替手段として言及します。

于 2013-01-08T16:17:50.003 に答える