本地化:域=com.alamofire.error.serialization.response 代码=-1011“请求失败:未找到404

问题描述

最近,当我将应用程序更改为新语言进行测试时,我添加了两种语言来本地化应用程序。我可以成功地看到所有文本更改,很少有其他 API 无法使用新语言。我与后端团队进行了交叉检查。他们没有做任何更改,它适用于旧语言
在这里你可以找到我的示例代码

 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
 }

可以帮助任何人吗?我需要改变什么吗

解决方法

我做了两个修改,一个是与请求头中的 accept-language 相关的,对于任何本地化语言,我都保留了默认语言 en。另一个是acceptableContentTypes

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

现在它按预期工作,对于本地化语言,我们使用 X-Lang 标头。