WP7 - 防止RestSharp缓存

时间:2012-04-19 16:27:07

标签: windows-phone-7 restsharp

我在Windows Phone 7.1项目中使用RestSharp。

我的问题是RestSharp总是缓存响应数据。

示例:

我第一次发送请求时,它会正确返回数据。在一些删除操作之后,我再次发送该请求,但响应似乎与第一次相同,没有任何改变。

如果我停止调试并按F5再次启动,它会按预期完美地运行。

我也试过request.AddParameter("cache-control", "no-cache", ParameterType.HttpHeader);但没有运气。

如何解决此问题?

4 个答案:

答案 0 :(得分:3)

我在Rico Suter评论中找到了解决方案,谢谢!我将此标记为已接受的anwser

  

它是一个黑客,但尝试类似url = originalUrl +“& nocache =”+ DateTime.Now.Ticks

答案 1 :(得分:3)

我有同样的问题,所以只需添加指定不缓存响应数据的标头 客户端是我的具有基本URL的RestClient,而不是使用值no-cache添加默认头Cache-Control。

client.AddDefaultHeader("Cache-Control", "no-cache")

答案 2 :(得分:1)

“Cache-Control”标题应该可以解决问题!

我认为HTTP标头不区分大小写,但服务器可能不同意我的意见!您应该尝试使用Cache-Control代替cache-control ...

另外,我还会在请求中添加Pragma标头no-cache值(某些旧服务器不使用“Cache-Control”标头,但是他们肯定会识别出这个标头) !

我会尝试使用Fiddler来调试通信,并检查标头是否真的按预期发送到服务器!

答案 3 :(得分:0)

另一种解决方案是设置值为DateTime.Now的“If-Modified-Since”标头:

client.AddDefaultParameter("If-Modified-Since", DateTime.Now, ParameterType.HttpHeader);