【发布时间】:2017-01-24 22:43:17
【问题描述】:
我在向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()
知道发生了什么吗?
【问题讨论】:
-
你可以在这里看到:stackoverflow.com/a/25210143/5965126
-
不工作。这真的很奇怪,即使是新安装它也显示旧版本。
-
你在 url 中尝试过 cachebuster 参数吗?
-
我认为是缓存。我在 url 中添加了一个随机参数,它解决了我的问题。
标签: ios swift app-store-connect nsmutableurlrequest