Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是.Net';s WebClient类支持ETag“;开箱即用;?_C#_.net_Caching_Webclient_Etag - Fatal编程技术网

C# 是.Net';s WebClient类支持ETag“;开箱即用;?

C# 是.Net';s WebClient类支持ETag“;开箱即用;?,c#,.net,caching,webclient,etag,C#,.net,Caching,Webclient,Etag,在下面的代码示例中,我从一个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 = cl

在下面的代码示例中,我从一个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只发出第一个请求,而从不发出第二个请求。为什么?

@SLaks嗯。你能详细说明一下这个链接是如何回答我的问题的吗?德克萨斯州。