我的想法是为我对服务器执行的每个请求添加签名。我希望在头文件中使用此值,以便服务器可以识别客户端。
以下是我目前设置经理的方式:
@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]];
答案 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:@[...];
}
如果您找到更好的方法,请告诉我们!