【发布时间】:2014-10-29 17:13:33
【问题描述】:
我使用的一个我无法控制的 API 在不应该使用 301 永久重定向的情况下使用它。我需要我的 NSURLConnection 忽略它在过去被永久重定向以供将来请求的事实。
以下是 Clarity 的示例。
我正在连接到http://stupidapi.com/users/frank/profilepicture。它执行 301 重定向到 http://profilepictures.stupidapi.com/52435346324,其中包含我正在寻找的个人资料图片。
可以说,后来弗兰克登录了他的帐户并更改了他的个人资料图片。现在,当我想要新的个人资料图片时,我会转到 http://stupidapi.com/users/frank/profilepicture,但由于我提出的第一个请求是 301 永久重定向,它会将我发送回 http://profilepictures.stupidapi.com/52435346324,这是旧图片。如果这是我第一次请求,它会将我发送到http://profilepictures.stupidapi.com/34535476557 以获取新图片。
如何让 NSURLConnection 始终转到最新版本的图片?
我尝试将 NSURLRequest 缓存策略设置为 NSURLRequestReloadIgnoringCache
request.cachePolicy = NSURLRequestReloadIgnoringCache;
我还尝试在使用
发出任何请求之前清除 NSURLCache[NSURLCache sharedURLCache] removeAllCachedResponses];
到目前为止都没有工作。感谢您的帮助!
【问题讨论】:
-
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:request]呢? -
我会试一试,谢谢
-
试过了,结果一样。这样的东西真的被系统缓存了吗?似乎即使我删除我的应用并重新安装它,我仍然会被重定向到旧版本。
-
Safari 加载它没有问题吗?
-
您是否检查过实际发送的请求,它可能缓存在路由器中等。使用 Charles Proxy 快速检查可能会有所帮助。
标签: ios cocoa-touch http redirect nsurlconnection