如何在Swift中禁用缓存

时间:2018-10-29 23:39:26

标签: json swift web-scraping

在我的iOS应用程序中,我发现当我直接从浏览器中调用url时,我得到了一个最新的json,而当在应用程序中调用它时,我得到了一个较旧的json版本。我已经在加载URL的代码片段下面发布了代码。

func getItems() {
    //Hit the web service Url
    let serviceUrl = "omitted"

    //Download the json data
    let url = URL(string: serviceUrl)
    if let url = url{
        //Create a URL Session
        let session = URLSession(configuration: .default)
        let task = session.dataTask(with: url, completionHandler: {(data, response, error) in
            if error == nil {
                //Succeeded
                //Call the parse json function on the data
                self.parseJson(data!)
            }
            else {
                print("error occured in getItems")
            }
        })
        // Start the task
        task.resume()
    }
}

1 个答案:

答案 0 :(得分:0)

您可以在URLRequest中设置cachePolicy

您的代码将是

func getItems() {
        //Hit the web service Url
        let serviceUrl = "omitted"
        let url = URL(string: serviceUrl)
        //Download the json data
        if let url = url{
            //Create a URL Session
            let session = URLSession(configuration: .default)
            let request = URLRequest(url: url, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 15.0)
            let task = session.dataTask(with: request, completionHandler: {(data, response, error) in
                if error == nil {
                    //Succeeded
                    //Call the parse json function on the data
                    self.parseJson(data!)
                }
                else {
                    print("error occured in getItems")
                }
            })
            // Start the task
            task.resume()
        }
    }