JSON Request using AFNetworking 2 giving me a NSURLErrorDomain error

363 views Asked by At

I am making a simple GET request using AFNetworking 2, but I am getting a NSURLErrorDomain error.

I created a manager class which subclasses AFHTTPRequestOperationManager and creates a singleton instance so that I can use a shared manager.

+ (id)manager {
    static dispatch_once_t pred = 0;
    __strong static id _sharedObject = nil;
    dispatch_once(&pred, ^{
        _sharedObject = [[self alloc] init];

    });
    return _sharedObject;
}


- (id)init {

    NSURL *baseURL = [ZSSAuthentication baseURL];
    self = [super initWithBaseURL:baseURL];
    if (self) {

        [self setRequestSerializer:[AFJSONRequestSerializer serializer]];
        [self setResponseSerializer:[AFJSONResponseSerializer serializer]];
        [self.requestSerializer setAuthorizationHeaderFieldWithUsername:[ZSSAuthentication username] password:[ZSSAuthentication password]];

        [[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES];

    }
    return self;
}

- (void)getData:(NSString *)pubID parameters:(NSDictionary *)parameters completion:(void (^)(NSDictionary *results))completion failure:(void (^)(NSError *error))failure {


    NSString *url = [NSString stringWithFormat:@"data/all/%@", pubID];
    [self GET:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

        // Check to see if there are errors
        ZSSError *error = [self errorForAPICall:responseObject status:[operation.response statusCode]];
        if (error) {
            [self logMessage:error.localizedDescription];
            failure(error);
            return;
        }

        NSDictionary *data = [responseObject objectForKey:@"data"];
        completion(data);

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        failure(error);
    }];

}

Then, in my viewController's viewDidLoad method I make a call to that method:

[[ZSSManager manager] getData:self.pubID parameters:nil completion:^(NSDictionary *results) {
        self.items = results;
        [self dataWillReload];
        NSLog(@"%@", results);
        [self.tableView reloadData];
    } failure:^(NSError *error) {
        NSLog(@"Error: %@ %li", error, (long)error.code);
    }];

Then I get this error:

Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. (NSURLErrorDomain error -999.)" UserInfo=0x7ff952306610 {NSErrorFailingURLKey=http://test.mysite.com/v1/data/all/5}

The strange thing is, on a previous viewController, I make a different call to the manager, and it completes and returns data correctly. But, when I make this second call, I get the error. AND, if I move that getData call out of the viewDidLoad method, and invoke it with a button press, it DOES WORK. What the heck?

What could be causing this?

0

There are 0 answers