AFHTTPRequestOperation拦截操作的开始

时间:2014-01-27 21:50:16

标签: afnetworking

AFHTTPRequestOperation中有setCompletionBlock。 AFHTTPRequestOperation启动时有没有办法拦截?

1 个答案:

答案 0 :(得分:3)

是或否,取决于你的“拦截”的含义......

由于您可以控制它何时开始(通过将其添加到NSOperationQueue或通过调用[operation start]),因此没有为有条件地启动提供接口。

如果您只想在启动时通知,您可以注册AFNetworkingOperationDidStartNotification,这是在通知开始时广播的。

您可以像这样实现:

// In some method…
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(HTTPOperationDidStart:) name:AFNetworkingOperationDidStartNotification object:nil];


- (void)HTTPOperationDidStart:(NSNotification *)notification {
    AFHTTPRequestOperation *operation = (AFHTTPRequestOperation *)[notification object];

    if (![operation isKindOfClass:[AFHTTPRequestOperation class]]) {
        return;
    }

    NSLog(@"%@ '%@': %@", [operation.request HTTPMethod], [[operation.request URL] absoluteString], [operation.request allHTTPHeaderFields]);
            break;
}

此示例代码是AFHTTPRequestOperationLogger的略微修改的摘录,它将AFNetworking信息记录到您的控制台。

相关问题