首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有更改Mashery "sig=XXXXXX“查询项的NSURLCache

具有更改Mashery "sig=XXXXXX“查询项的NSURLCache
EN

Stack Overflow用户
提问于 2016-02-19 07:28:16
回答 1查看 730关注 0票数 0

当URL包含更改的查询项时,是否可以使用NSURLCache缓存响应?例如,我们添加了Mashery所需的"sig=XXXXXX“查询项,该查询项随每个请求而变化。

如果没有,是否有解决方法?

EN

回答 1

Stack Overflow用户

发布于 2016-02-24 09:59:22

通过将NSURLCache子类化并覆盖其缓存方法来解决。

在每个被覆盖的方法中,我在调用超类的方法之前从请求中删除了查询项。

例如:

代码语言:javascript
复制
override func storeCachedResponse(cachedResponse: NSCachedURLResponse, forRequest request: NSURLRequest) {
        let strippedRequest = removeQueryItemFromRequest(self.queryItemName, request: request)

        if let url = strippedRequest.URL {
            let response = NSURLResponse(URL: url, MIMEType: cachedResponse.response.MIMEType, expectedContentLength: Int(cachedResponse.response.expectedContentLength), textEncodingName: cachedResponse.response.textEncodingName)
            let newCachedResponse = NSCachedURLResponse(response: response, data: cachedResponse.data)

            super.storeCachedResponse(newCachedResponse, forRequest: strippedRequest)
        }
        else {
            super.storeCachedResponse(cachedResponse, forRequest: request)
        }
    }

self.queryItemName是传递给自定义初始值设定项的存储属性。

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

https://stackoverflow.com/questions/35494537

复制
相关文章

相似问题

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