AFHTTPRequestOperation中有setCompletionBlock。 AFHTTPRequestOperation启动时有没有办法拦截?
答案 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信息记录到您的控制台。