1

Etag 在 HTTP 规范中有很好的定义。此处提供更多解释http://en.wikipedia.org/wiki/HTTP_ETag

最近我尝试使用带有 ASP.Net Web API 的 RestSharp 客户端库,但是我在缓存方面遇到了一些问题,我从服务器端发送 Etag(即“ETag”:“12345”作为响应头)到客户端,我可以看到RestResponse 对象的响应标头中的 Etag 相同,到目前为止很高兴。

现在在下一个请求中,使用相同的 RestSharp 客户端,我希望 RestSharp 在随后对服务器的相同资源请求中传递“If-None-Match”标头(即“If-None-Match”:“12345”作为请求标头),但不幸的是,我找不到将 RestSharp 设置为自动执行此操作的方法。

注意:c# 中的 WebClient 类在原始操作中完成这项工作,但 RestSharp 没有。

我想要的是,有人来确认怎么做,或者只是告诉我我是垃圾:P

4

2 回答 2

1

根据我在源代码中看到的内容,您需要在对该资源的下一个请求中自己添加该标头。

于 2013-03-12T01:22:47.983 回答
1

RestSharpHttpWebRequest在幕后使用。我在客户端初始化期间运行了这行代码,并开始If-None-Match自动获取标题。

HttpWebRequest.DefaultCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);

这告诉HttpWebRequest使用默认缓存级别(没有此行,似乎缓存级别设置为HttpRequestCacheLevel.BypassCache)。

于 2015-04-17T19:12:54.373 回答