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,然后调用objectRequestOperationWithRequest:success:failure:managedObjectRequestOperationWithRequest:managedObjectContext:success:failure:。这将允许您一次性配置请求。
  2. 配置RKHTTPRequestOperationvia setHTTPOperationClass:on的自定义子类RKObjectManager。这将让您挂钩子类,可以在对象管理器发出请求时配置每个 NSURLRequest,让您集中配置。
  3. 在最新的开发分支上,您还可以RKObjectRequestOperation向管理器注册一个子类,该子类将用于您选择的请求,使您能够在对象请求操作级别集中定制。

选项 1 或 2 可能最适合您概述的 HTTP 级别问题,但我提到作为在对象映射级别进行相同类型自定义的替代方法。

于 2013-01-08T16:17:50.003 回答