我想通过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参数。
查看这些标题是否可以每秒询问服务器是否更新了响应文档,如果更新,只下载文档的更新部分?
答案 0 :(得分:0)
条件获取请求或HEAD请求将满足您的首要需求。看一下9.3和& 9.4在this页面中,您会找到详细信息。请记住,服务器必须支持这些头文件/请求才能工作(不仅仅是Web服务器,还有应用程序本身,动态创建响应)。至于仅下载文档的修改部分,它实际上取决于服务器是否/如何实现它。