我的想法是为我向服务器执行的每个请求添加签名。我希望在 header 中包含此值,以便服务器可以识别客户端。
以下是我目前如何设置我的经理:
@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
所以我希望我的经理自动为我设置一个针对每个请求都不同的 header ,类似的东西
// 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]];
最佳答案
好吧,我使用了 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:@[...];
}
如果您找到更好的方法,请告诉我!
关于objective-c - 如何使用 RestKit 设置动态 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523349/