1

我有一个 GET 服务调用,我必须在收到响应时执行某些操作。

据我所知,委托方法实际上AFNetworking只在请求完成或完全失败时通知。

通过深入研究AFNetworking,我发现AFURLConnectionOperation得到回调

- (void)connection:(NSURLConnection __unused *)connection
didReceiveData:(NSData *)data;

现在,我的问题是,如何在发起请求的类中获取此回调?

PS我厌倦了发送NSNotification使用NSNotificationCenter,我确实收到了通知。但是,由于多个同时请求被发送到服务器,我无法区分哪个请求的响应是我被通知的。

编辑

我注意到它AFHTTPRequestOperation是继承自的,AFURLConnectionOpertaion所以我可以实现connection:didReceiveData的方法,NSURLConnectionDelegate但问题再次是,我如何从那里发送回调。:(

4

1 回答 1

3

这是一个完整的示例,它有效:

    NSMutableURLRequest *request = [[HTTPClient sharedInstance] requestWithMethod:@"GET" path:iurl parameters:nil];
    AFHTTPRequestOperation *operation = [[HTTPClient sharedInstance] HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"success");
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"failure");
    }];
    [operation setDownloadProgressBlock:^( NSUInteger bytesRead , long long totalBytesRead , long long totalBytesExpectedToRead )
     {
         NSLog(@"%lld of %lld", totalBytesRead, totalBytesExpectedToRead);
     }
     ];
    [[HTTPClient sharedInstance] enqueueHTTPRequestOperation:operation];
于 2013-03-13T19:26:44.997 回答