我正在以编程方式从 Sharepoint 2016 文档库下载文件。网址是:
https://hostname.com/Site/Folder/_layouts/15/download.aspx ?{long, long URL}
该站点发出 ETag 标头,但是当我发送带有 If-None-Match 的请求时,提供我刚刚得到的 ETag ,没有304 Not Modified
响应,它是 200 和整个文档。
我收到的 ETag 标头是:
ETag: "{EED54197-A30B-4625-9EBA-8DC7F9D62CF3},1435"
然后请求标头变为:
If-None-Match: "{EED54197-A30B-4625-9EBA-8DC7F9D62CF3},1435"
我正在针对 IIS 中的静态文件测试相同的设置 - 它按预期工作,304 来了。
请问我错过了什么?会不会是 Sharepoint API 的疏忽?
编辑:一个不令人满意的解决方法是首先触发 HEAD 请求并手动匹配客户端上的 ETag 值。