Вызов https://itunes.apple.com/lookup?id кэширует json

У меня действительно странная проблема с запросом на https://itunes.apple.com/lookup?id=APPID

Если я попробую этот URL-адрес в своем браузере, он выдаст мне текущую версию приложения. Но если я вызову это из приложения для iOS, оно выдаст мне старый.

Это код, который я использую

let stringUrl : String = "https://itunes.apple.com/lookup?id=APPID"

    let req : NSMutableURLRequest = NSMutableURLRequest(url: URL(string: stringUrl)!, cachePolicy: NSURLRequest.CachePolicy.reloadIgnoringCacheData, timeoutInterval: 10.0)
    req.httpMethod = "get"

    let manager = AFHTTPRequestOperationManager()
    manager.responseSerializer = AFJSONResponseSerializer()

    let r = manager.httpRequestOperation(with: req as URLRequest!,
        success: { (operation: AFHTTPRequestOperation?,responseObject: Any?) in
            if let responseDic :Dictionary<String, AnyObject> = responseObject as? Dictionary<String, AnyObject> {

                let currentVersion: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String

                let results = responseDic.first?.value as! Array<AnyObject>

                let dic =  results.first as! Dictionary<String,AnyObject>
                let version : String = dic["version"] as! String
                //let version : String = responseDic.object(forKey: "results")?[0].object(forKey: "version") as! String

                self.isUpToDate = currentVersion == version

                delegate.onVersionReceived(version)
            }
        },
        failure: { (operation: AFHTTPRequestOperation?,error: Error?) in

    })
    r.start()

Любая идея о том, что происходит?


person Pablo Martinez    schedule 24.01.2017    source источник
comment
Вы можете увидеть здесь: stackoverflow.com/a/25210143/5965126   -  person Grifas    schedule 25.01.2017
comment
может ли это быть связано: stackoverflow.com/a/23604799/2305175?   -  person Fyodor Volchyok    schedule 25.01.2017
comment
Не работает. Это что-то действительно странное, даже при новой установке отображается старая версия.   -  person Pablo Martinez    schedule 25.01.2017
comment
Вы пробовали аргумент очистки кеша в URL-адресе?   -  person Alistra    schedule 25.01.2017
comment
Это сработало, но я не знаю, почему не работает cachepolicy. Вы знаете, сколько времени занимает обновление кеша? Приложение уже находится в разработке   -  person Pablo Martinez    schedule 25.01.2017
comment
Нет нет нет! Вам нужно сделать let dic = responseDic["result"] as? [[String:AnyObject]]   -  person Coder-256    schedule 25.01.2017
comment
Я думаю, это был кеш. Я добавил случайный параметр в URL-адрес, и это решило мою проблему.   -  person Pablo Martinez    schedule 22.12.2017


Ответы (1)