0
我在使用AFNetworking
使服务呼叫的应用以下情形:AFHTTPRequestOperation依赖
- 我称之为一种特殊的服务,将产生对我来说令牌
- 我打电话,我想要的服务,发送此令牌作为参数
- 我调用另一个特殊服务来销毁令牌。
我必须按照我每次向服务器请求时这3个步骤。我无法改变服务器的工作方式,所以我必须遵守这个要求。我也不能对多个请求使用相同的标记。
我的问题是下面的 - 我试图做到这一点使用AFHTTPRequestOperation
S:
NSError *serializationError = nil;
NSMutableURLRequest *request = [self.manager.requestSerializer requestWithMethod:@"POST" URLString:[[NSURL URLWithString:@"serviceName.json" relativeToURL:self.manager.baseURL] absoluteString] parameters:@{ @"token": token } error:&serializationError];
AFHTTPRequestOperation *myRequestOperation = [self.manager HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
// Success login
} failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {
// Failure logic
}];
[myRequestOperation addDependency:createTokenRequestOperation];
其中self.manager
是AFHTTPRequestOperationManager
一个实例,但有一个问题 - 我没有价值token
。
由于myRequestOperation
应该只在上面的列表中的第1点后执行,所以我使它依赖于将使我获得令牌的操作。
现在我的困惑 - 我如何创建一个操作,使用前一个操作中的参数,当我需要将它们两个实例化以使其中一个依赖另一个时?
我quess您可以创建一个*变量*在某个对象或当前的操作调用者中出现。当第一个操作完成时,它将令牌设置为这个*变量*。当下一个操作被调用时,它会检查这个*变量*中是否有一个值。 – Massmaker