简体   繁体   中英

AFNetworking 3.0 not getting json from response

I am making post request getting response responseObject but in data formate .why its not coming in json format.

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    NSString *urlstr=[SERVER_API_URL stringByAppendingString:methodType];
    [manager POST:urlstr parameters:input progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"success! data=%@",responseObject);
        NSLog(@"responseObject==%@",responseObject);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"error: %@", error);
    }]

;

here the responseObject i am getting in NSLog

success! data=<227b2261 63636573 735f746f 6b656e22 3a224d58 31563255 736c3053 47367654 706f2d4d 76346459 672d3369 35684c4e 796d4245 4e674e4d 56574b5a 6c394476 3937536e 364a4e7a 3952524b 556d4f50 717a485f 7748416e 63675849 70626e43 35703647 4c4f324d 7a773761 6b366d4d 6c4b6465 36766d62 3769434a 4973336c 3544674a 74345a4f 48523338 786c5270 554a4e56 5762356c 39347067 72417978 34555a47 35376444 456a4c62 39394d4b 55517358 546a3933 3751614e 526f5073 4c437859 4b5a7a6e 79483533 4f553555 4266457a 6f396732 5f767262 31736278 58334174 63467072 4a674d70 45682d45 33613750 346d3344 2d64706a 5a575365 7a4a6155 74463256 5a463733 6c716c32 5933222c 22746f6b 656e5f74 79706522 3a226265 61726572 222c2265 78706972 65735f69 6e223a38 36333939 7d22>

when i am passing request from the postman client i am getting everything proper data. here is the screen shot . 在此输入图像描述

Change your code as per below:

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
//manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

NSString *urlstr=[SERVER_API_URL stringByAppendingString:methodType];
[manager POST:urlstr parameters:input progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    NSLog(@"[success]: %@",responseObject);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSLog(@"[error]: %@", error);
}]

Set acceptable content types:

[manager.responseSerializer setAcceptableContentTypes:[NSSet setWithArray:@[@"application/json"]]];

Then turn the response into NSDictionary :

NSDictionary *response = responseObject;
NSLog("api response: %@", response);

Remember to handle any errors.


Side note: If you are working with a self signed SSL, you can allow invalid certificates by:

manager.securityPolicy.allowInvalidCertificates = YES;
manager.securityPolicy.validatesDomainName = NO;

I get the same error, but y fixed it indicate in where the JSON is going to print

Before I had

NSLog(@"JSON usando AFNetworking: %@",responseObject);

Now it worked with

NSLog(@"JSON usando AFNetworking: %@",[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM