如何使用RestKit设置动态标头?

时间:2014-10-23 07:40:54

标签: objective-c http-headers restkit

我的想法是为我对服务器执行的每个请求添加签名。我希望在头文件中使用此值,以便服务器可以识别客户端。

以下是我目前设置经理的方式:

@property(nonatomic, strong) RKObjectManager *manager;

...

- (void)setupManager {
  self.manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:ACCESS_POINT]];

  // Add logic here to add my dynamic header

  [self.manager.HTTPClient setDefaultHeader:@"Content-Type" value:@"application/json"];
  [self.manager.HTTPClient setDefaultHeader:@"Accept" value:@"application/json"];
  [self.manager addResponseDescriptorsFromArray:@[...];
  [self.manager addRequestDescriptorsFromArray:@[...];
}

我只调用一次setupManager

所以我希望我的经理在每个请求中设置一个不同的标题,对我来说是自动的,类似的东西

 // the signature method would return an encoded string with some encrypted value, different each time we call it
 [self.manager.HTTPClient setDefaultHeader:@"SIGNATURE" value:[self signature]];

1 个答案:

答案 0 :(得分:2)

好的,我选择了AFHTTPClient使用的NSOperationQueue

- (void)setupManager {
  self.manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:ACCESS_POINT]];

  [self.manager.HTTPClient.operationQueue addOperationWithBlock:^{
    [self.manager.HTTPClient setDefaultHeader:@"SIGNATURE" value:[self signature]];
  }];

  [self.manager.HTTPClient setDefaultHeader:@"Content-Type" value:@"application/json"];
  [self.manager.HTTPClient setDefaultHeader:@"Accept" value:@"application/json"];
  [self.manager addResponseDescriptorsFromArray:@[...];
  [self.manager addRequestDescriptorsFromArray:@[...];
}

如果您找到更好的方法,请告诉我们!