AFNetworking
サービスの呼び出しに使用するアプリケーションには、次のシナリオがあります。
- トークンを生成する特別なサービスを呼び出します
- このトークンをパラメーターとして送信して、必要なサービスを呼び出します
- 別の特別なサービスを呼び出して、トークンを破棄します。
サーバーにリクエストを送信するたびに、これらの 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 の後にのみ実行する必要があるため、トークンを取得する操作に依存させます。
ここで混乱が生じます.一方を他方に依存させるために両方をインスタンス化する必要がある場合、前の操作のパラメーターを使用する操作を作成するにはどうすればよいですか?