4

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

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

例子:

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

如果我停止调试并按 F5 重新开始,它会按预期完美运行。

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

我该如何解决这个问题?

4

4 回答 4

4

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

client.AddDefaultHeader("Cache-Control", "no-cache")
于 2015-05-13T12:05:43.683 回答
3

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

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

于 2012-04-20T02:12:36.173 回答
1

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

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

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

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

于 2012-04-19T17:21:09.913 回答
0

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

client.AddDefaultParameter("If-Modified-Since", DateTime.Now, ParameterType.HttpHeader);
于 2015-06-01T13:46:28.453 回答