Как выполнить AFHTTPRequestOperation в AFNetworking 2

Я реализовал синтаксический анализ JSON, используя AFNetworking много раз в некоторых предыдущих приложениях, например:

    NSString *string = [NSString stringWithFormat:@"%@?get_all_data", BaseURLString];
        NSURL *url = [NSURL URLWithString:string];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    operation.responseSerializer = [AFJSONResponseSerializer serializer];

    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
     {
//performing parsing here

     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//error message displayed here
}

Но с сегодняшнего дня я начал работать над приложением через некоторое время, я снова начал использовать AFNetworking, и я установил его, используя pods, поэтому я пишу тот же код, который я использую для записи, прежде чем он выдаст мне сообщение об ошибке Unknown Receiver AFHTTPRequestOperation. Do you mean AFHTTPRequestSerializer?
After поискав об этом, я обнаружил, что сейчас AFNetworking 2 или 3 эра, и они каким-то образом изменили декорации. Я не нашел точного решения о том, как это реализовать сейчас. Так может ли кто-нибудь написать код в ответе ниже, который работает с последней версией AFNetworking.


person Chaudhry Talha    schedule 07.08.2016    source источник
comment
начиная с версии 3.x afnetwroking использует собственную очередь для управления операциями, поэтому вам не нужно использовать AFHTTPRequestOperation, вы можете вызвать ws как сообщение @MedAmine.Rihane   -  person Prashant Tukadiya    schedule 08.08.2016


Ответы (1)


Это новый подход AFNetworking 3.x к анализу данных:

NSString *path = @"yourapilink";
NSString *escapedPath = [path stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

[manager GET:escapedPath  parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

Надеюсь, это поможет!

person MedAmine.Rihane    schedule 07.08.2016