我在Windows Phone 7.1项目中使用RestSharp。
我的问题是RestSharp总是缓存响应数据。
示例:
我第一次发送请求时,它会正确返回数据。在一些删除操作之后,我再次发送该请求,但响应似乎与第一次相同,没有任何改变。
如果我停止调试并按F5再次启动,它会按预期完美地运行。
我也试过request.AddParameter("cache-control", "no-cache", ParameterType.HttpHeader);
但没有运气。
如何解决此问题?
答案 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);