iosobjective-clocalizationalamofireafnetworking

Localization: Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: not found (404)


Recently I have added two languages to localise the app, when I changed the app to new language to test. I can successfully see the all text changes, few rest API's are not working to new language. I have crosscheck with backend team. they have not done any changes and it is working to old languages
here you can find my sample code

 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
 manager.responseSerializer = [AFHTTPResponseSerializer serializer];
 [manager.requestSerializer setValue:KEY forHTTPHeaderField:@"X-Api-Key"];
 [manager.requestSerializer setValue:SECRET forHTTPHeaderField:@"X-Api-Secret"];
 [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
 [manager.requestSerializer setValue:@"nl" forHTTPHeaderField:@"X-Lang"];
    
 [manager.requestSerializer setTimeoutInterval:TIMEOUT_TIME];
    NSDictionary *parameters = @{@"email": email,
                                 @"password": password,
                                 @"useragent": @"mobile"};
 [manager PUT:@"http://urlstring" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // handling response
 }

can help anyone? do I need to change anything


Solution

  • I have made two modifications one is related to accept-language in request heads, which I kept default language en with respect of any localization language. another one is acceptableContentTypes.

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
    [manager.requestSerializer setValue:@"en" forHTTPHeaderField:@"Accept-Language"];
    

    Now it is working as expected, for localised languages we are using X-Lang header.