有条件的

时间:2015-01-11 19:09:04

标签: c# json http caching

我想通过C#连接到一个API,它提供了json响应,但只是从url下载最后一个修改过的json。所以我不想做出不必要的Get请求,想要检查Last-Modified,eTag或者标题。 Content-Length并检查json响应是否被修改然后发出Get请求并仅下载Json的最后更新部分。

以下是我从请求中获得的响应标头:

Cache-Control:"no-store, no-cache, must-revalidate, post-check=0, pre-check=0" Content-Encoding:"gzip" Content-Type:"text/html; charset=utf-8" Date:"Sun, 11 Jan 2015 18:47:55 GMT" Expires:"Thu, 19 Nov 1981 08:52:00 GMT" Pragma:"no-cache" Server:"nginx" X-Firefox-Spdy:"3.1"

以下是请求标题:

User-Agent:"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0" Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8" Accept-Language:"en-US,en;q=0.5" Accept-Encoding:"gzip, deflate" Cookie:"sid=i7e9lrhkju078ek1trj58tq406" Connection:"keep-alive" Cache-Control:"max-age=0"

我刚才没有在这里写出Host参数。

查看这些标题是否可以每秒询问服务器是否更新了响应文档,如果更新,只下载文档的更新部分?

1 个答案:

答案 0 :(得分:0)

条件获取请求或HEAD请求将满足您的首要需求。看一下9.3和& 9.4在this页面中,您会找到详细信息。请记住,服务器必须支持这些头文件/请求才能工作(不仅仅是Web服务器,还有应用程序本身,动态创建响应)。至于仅下载文档的修改部分,它实际上取决于服务器是否/如何实现它。