在我的应用程序中,我正在使用新的AFN 3.0,并且我有
AFHTTPSessionManager*经理
而不是
AFHTTPRequestOperation*操作
我的问题是,在我能够从RequestOperation获得一些数据之前:
NSURL *url = operation.request.URL;
//or
NSNumber statusCode = operation.response.statusCode;
//or
NSData *responseData = operation.responseData;
以及如何使用AFHTTPSessionManager获取这些元素?
感谢
在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的迁移指南AF网络迁移指南
对于NSURLSessionTask参考:NSURLSessionTask