【问题标题】:Localization: Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: not found (404)本地化:Domain=com.alamofire.error.serialization.response Code=-1011 “请求失败:未找到 (404)
【发布时间】:2021-09-12 15:49:19
【问题描述】:

最近我添加了两种语言来本地化应用程序,当我将应用程序更改为新语言进行测试时。我可以成功看到所有文本更改,很少有其他 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
 }

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

【问题讨论】:

  • 只要验证你的服务器地址和路径,如果这些都是正确的,那么对于这个错误,它的后端正在做一些可疑的事情,不要让他们逃跑:D :p
  • 这个问题一般是因为url路径错误(找不到资源)。我还观察到您使用了很多 HTTPHeaderField 验证一切都正确。

标签: ios objective-c localization alamofire afnetworking


【解决方案1】:

我做了两项修改,一项与请求头中的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 标头。

【讨论】:

    猜你喜欢
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 2016-11-23
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多