首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URLCache不缓存404响应

URLCache不缓存404响应
EN

Stack Overflow用户
提问于 2022-12-02 10:41:03
回答 1查看 18关注 0票数 0

我的服务器正在发送适当的缓存头,但是URLSession不会缓存响应。有什么办法使它缓存,虽然它是一个404?

HTTP/1.1 404未找到内容-类型: application/json;charset=utf-8缓存-控制: public,max-age=30内容-长度:0日期: Fri 2022 10:39:43 GMT

EN

回答 1

Stack Overflow用户

发布于 2022-12-04 00:19:33

不幸的是,URLSession使用HTTP代码来确定是否缓存响应。由于状态代码为404 (未找到),因此不会缓存响应。

最好的方法是确保服务器返回要缓存的响应的适当状态代码(例如200 OK)。

示例:

代码语言:javascript
复制
func shouldCacheResponse(for request: URLRequest) -> Bool {
let session = URLSession.shared
var shouldCacheResponse = false
let task = session.dataTask(with: request) {
    data, response, error in guard let response = response as? HTTPURLResponse
    else { return }
    shouldCacheResponse = response.statusCode == 200
}
task.resume()
return shouldCacheResponse

}

此代码是一个函数,它以URLRequest作为参数并返回布尔值。代码使用URLSession创建带有URLRequest的数据任务。然后,它使用一个守护语句来检查响应是否是HTTPURLResponse。如果是,如果状态代码等于200,则将shouldCacheResponse变量设置为true。最后,任务被恢复,函数返回shouldCacheResponse的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74654429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档