在下面的代码示例中,我从一个WebClient对象调用两次相同的URL:
var client = new WebClient();
var url = "http://windows.microsoft.com/scripts/4.2/wol/modernizr.wol.js";
var result = client.DownloadString(url);
// Imagine some work done here:
Thread.Sleep(5000);
var result2 = client.DownloadString(url);
我是否可以信任WebClient尊重从此URL返回的ETag,在第二次请求时将其发送到服务器并正确识别服务器的304状态代码?
我知道我可以添加代码来存储来自第一个响应的ETag并将其与第二个响应一起发送出去(作为" If-None-Match"标头)。我的问题是 - 我必须这样做吗?
奖金问题:如果您实际运行上述代码并嗅探它(例如:w / Fiddler2),您将看到WebClient仅发出第一个请求而从不发出第二个请求。为什么?