1

在我的应用程序中,我使用的是新的 AFN 3.0,我有

AFHTTPSessionManager *经理

代替

AFHTTPRequestOperation *操作

我的问题是,在我能够从 RequestOperation 获取一些数据之前:

NSURL *url = operation.request.URL;

//or

NSNumber statusCode = operation.response.statusCode;

//or

NSData *responseData = operation.responseData;

以及如何使用 AFHTTPSessionManager 获取这些元素?

谢谢

4

1 回答 1

1

在 v2 中,您收到AFHTTPRequestOperation了请求

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

但是在 v3 中你会得到NSURLSessionTask

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

因此,基于此,您可以从之NSURLSessionTask类的currentRequest等处response获取详细信息

更多变化和细节可以参考AFNetworking AFNetworking Migration Guide的迁移指南

对于 NSURLSessionTask 参考:NSURLSessionTask

于 2016-03-31T03:27:42.013 回答