Monotouch-iphone HttpWebRequest是否关闭缓存?

Monotouch-iphone HttpWebRequest是否关闭缓存?,iphone,caching,mono,httpwebrequest,xamarin.ios,Iphone,Caching,Mono,Httpwebrequest,Xamarin.ios,我使用monotouch创建了一个iphone应用程序,它调用了一个返回JSON的不确定页面 奇怪的是这个。。。但是当我使用HttpWebRequest时,我收到的输出是从先前的请求缓存的 我用秒表计时,我必须等待两分钟才能得到新版本的页面,直到现在每次调用HttpWebRequest我都会得到缓存的输出 即使我关闭应用程序并重新加载它,在两分钟的时间内输出仍然是一样的 这在模拟器和手机上都会发生 我刚刚尝试添加一个缓存策略,但没有乐趣-我仍然将所有响应缓存2分钟 这是我最新的密码: Uri a

我使用monotouch创建了一个iphone应用程序,它调用了一个返回JSON的不确定页面

奇怪的是这个。。。但是当我使用HttpWebRequest时,我收到的输出是从先前的请求缓存的

我用秒表计时,我必须等待两分钟才能得到新版本的页面,直到现在每次调用HttpWebRequest我都会得到缓存的输出

即使我关闭应用程序并重新加载它,在两分钟的时间内输出仍然是一样的

这在模拟器和手机上都会发生

我刚刚尝试添加一个缓存策略,但没有乐趣-我仍然将所有响应缓存2分钟

这是我最新的密码:

Uri address = new Uri(url);
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;

System.Net.Cache.RequestCachePolicy c = new System.Net.Cache.RequestCachePolicy();
c.Level = RequestCacheLevel.NoCacheNoStore;
request.CachePolicy  = c;
request.Timeout = Settings.RequestTimeout;
HttpWebResponse response = request.GetResponse();

有人有什么想法吗?

您是否尝试过将请求发送到其他地址?它会在响应服务器端缓存两分钟吗?

仅供参考,但Mono的HttpWebRequest实现还没有进行任何缓存。它可能会在将来实现,但从2.10.3开始就不会了。

您可以尝试使用与iOS相关的对象和方法。在MonoTouch中使用NSUrlCache时,可以明确地看到缓存是实现的,您可以使用正确的NSUrlRequestCachePolicy枚举绕过它。下面是当我想避免命中缓存时我是如何做到的:

NSUrl url = new NSUrl (url);
NSUrlRequest request = new NSUrlRequest (url, 
                                 NSUrlRequestCachePolicy.ReloadIgnoringCacheData, 
                                 0.0);

//set a delegate to handle the request callback, subclass this yourself
_webView.Delegate = new UIWebViewDelegate();
_webView.LoadRequest (request);

希望这有帮助。

这让我很害怕。我刚刚向url添加了一个唯一的参数,即url+“&bypasscache”+DateTime.Now.Ticks.ToString();这相当于&noCache=634331926598503290,因此httpWebRequest的每个url调用都是唯一的,并且仍在缓存它!!!!!上一次(几个月前)我研究这个问题时,MT的HTTPWebRequest似乎没有进行任何缓存。我怀疑是其他机制(可能是服务器端缓存)导致了这种情况。除非MT中发生了一些我不知道的变化。我之前确实读到Safari将对象缓存在25k以下,而我的页面是25k。另外,我认为这是一个普遍的问题,好像我通过Safari调用(在MAC上)添加url,然后获取url我的更改在2分钟内不会显示。如果我在MAC电脑上使用chrome浏览器,它会立即生效。