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

Другие вопросы по тегам