Search code examples
objective-cafnetworking-2

AFNetworking Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)"


In POSTMAN:

https://i.sstatic.net/GoFMq.png

I'm getting response but in XCode I got error and here is my code:

NSString *tokenStr=[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults]objectForKey:@"token"]];

NSString *newString = [tokenStr stringByReplacingOccurrencesOfString:@"\"" withString:@""];
NSLog(@"Token iss %@",newString);

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

[manager.requestSerializer setValue:newString forHTTPHeaderField:@"Authorization-Token"];
[manager.requestSerializer setValue:@"5C063BDB-40EC-4EDE-8C0C-830D4437E056" forHTTPHeaderField:@"Authorization-Key"];
[manager.requestSerializer setValue:@"test@Simulationiq.com" forHTTPHeaderField:@"UserName"];
[manager.requestSerializer setValue:@"123456" forHTTPHeaderField:@"UserPassword"];

manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];



manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html",@"text/plain", nil];



[manager GET:BaseURLStringLogin parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Bhai Error: %@", error);
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error Retrieving Data"
                                                                                          message:[error localizedDescription]
                                                                                         delegate:nil
                                                                                cancelButtonTitle:@"Ok"
                                                                                otherButtonTitles:nil];
                                      [alertView show];

}];

Solution

  • That HTTP 400 error is returned from the server, which means the server-side app isn't happy with something about your request. If you have access to the server logs, investigate them and see if they give more detail about what is missing/malformed.

    Just from looking, though, I see you set a bunch of values on your manager.requestSerializer, but then overwrite the manager.requestSerializer with a default manager.requestSerializer = [AFHTTPRequestSerializer serializer];, which means all your customized configuration values would be overwritten. Try setting your config values after the serializer assignment:

    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    [manager.requestSerializer setValue:newString forHTTPHeaderField:@"Authorization-Token"];
    [manager.requestSerializer setValue:@"5C063BDB-40EC-4EDE-8C0C-830D4437E056" forHTTPHeaderField:@"Authorization-Key"];
    [manager.requestSerializer setValue:@"test@Simulationiq.com" forHTTPHeaderField:@"UserName"];
    [manager.requestSerializer setValue:@"123456" forHTTPHeaderField:@"UserPassword"];