这是我的火灾密码。
let headers: HTTPHeaders = ["Accept": "application/json",
"Authorization": Setting.getLoginStatus().accessToken]
let url = "http://thedemo.net/demo/stdinaus/api/jobs-near-me?page=1&latitude=27.6947033&longitude=85.3310636"
Alamofire.request(url, method: .get, encoding : JSONEncoding.default, headers: headers).responseJSON { (response) in
guard let jobsResponse = response.result.value as? [String:Any] else{
print("Error: \(String(describing: response.result.error))")
failure((response.result.error! as Error))
return
}
print("response: \(jobsResponse)") }
响应是正确的,并显示在相关屏幕上。我已经从视图控制器中的viewDidLoad()调用了它。在服务器上更新数据时,新数据不会出现在响应中。但是,如果我删除应用程序并再次运行(即,如果应用程序是第一次运行),那么更新的数据就会正常运行。
,这是alamofire代码的问题吗?请有人帮我解决这个问题。提前感谢
发布于 2018-02-08 07:19:26
可能与缓存数据有关,因此在调用API时忽略它。
let configuration = URLSessionConfiguration.default
configuration.requestCachePolicy = . reloadIgnoringLocalAndRemoteCacheData
var req = URLRequest(url: URL(string: YOUR_API_URL)!)
req.httpMethod = "GET"
req.setValue("application/json", forHTTPHeaderField: "Content-Type")
req.setValue("application/json", forHTTPHeaderField: "Accept")
req.setValue(Setting.getLoginStatus().accessToken, forHTTPHeaderField:"Authorization" )
req.cachePolicy = .reloadIgnoringLocalAndRemoteCacheData
Alamofire.request(req).validate().responseJSON { (response) in
print(response)
}
发布于 2018-02-08 06:54:13
因此,如果我正确理解,您希望您的应用程序中的数据在您的服务器更新后立即更新?
如果是这样的话,您不应该在viewDidLoad()方法中调用它,因为这个方法在加载视图时只调用了一次。它不会再次被调用,直到你重新启动你的应用程序。
https://stackoverflow.com/questions/48678860
复制相似问题