如何在YouTube API中使用ETags
显然,我们可以使用ETags来查看频道/播放列表是否已被更新或根据其文档中的以下声明:
当应用程序再次请求存储的资源时,它会指定与该资源关联的ETag。 如果资源发生了变化,那么API将返回与该资源版本关联的已修改资源和ETag。 如果资源没有改变,则API返回一个HTTP 304响应(Not Modified),表示资源没有改变。
但是我试图得到一个不会改变的频道数据,但是在刷新几次之后,似乎ETag跳转到了不同的值!
您不能再次击中端点并比较etag值; 相反,您必须提出请求,存储etag值,然后将etag值传递给随后的请求。 你将这样做是请求头…设置HTTP标头“If-None-Match”到你的etag的值。 如果没有任何改变,你会得到一个304(而不是任何内容或元数据)。 如果有什么变化,你会得到一个新的结果,你采取新的etag和存储它,而不是旧的。
用于Javascript的Google API客户端支持此标题; 当你创build你的gapi.client.request对象的时候,你会传入一个参数对象; 这个对象的其中一个参数是'headers',你可以在其中设置'If-None-Match'等于你要检查的etag。
(注意,还有一个'If-Match'头文件,它也可以和etags一起工作,如果资源是与之前请求的相同的资源,它将只返回内容…可能不是那么多用例,但它存在并受到支持。)
- node-mongodb-native,callback,范围和TypeError
- 在socket.io api文档中,“Server(srv:http#Server,opts:Object)”是什么意思?
- 当在Node.JS中使用callback时,“return”是必要/有用的吗?
- 当进程内存不足时如何处理V8引擎崩溃
- browserify'错误:找不到模块'试图修复'未捕获的参考错误:需求未定义'
- JavaScript对象在HTTP请求中占用的数据大小(kB)是多less?
- 使用Browserify / Babel / node.js你可以要求一个基于variablesstring的文件
- 更新时出现AppFog错误
- 如何检测和测量node.js中的事件循环阻塞?