iOS: данные ответа диспетчера сеансов AFHTT
В моем приложении я использую новый AFN 3.0, и у меня есть
AFHTTPSessionManager *manager
вместо
AFHTTPRequestOperation * операция
моя проблема в том, что прежде чем я смог получить некоторые данные из RequestOperation как:
NSURL *url = operation.request.URL;
//or
NSNumber statusCode = operation.response.statusCode;
//or
NSData *responseData = operation.responseData;
и как я могу получить эти элементы с AFHTTPSessionManager?
Спасибо
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.
Для NSURLSessionTask Ссылка: NSURLSessionTask