HttpClient HttpResponseMessage LastModified文件的日期

时间:2017-03-30 18:25:35

标签: c# .net date dotnet-httpclient

我正在使用C#HttpClient来模拟从服务器下载CSV文件的请求。我需要根据我下载的上一个文件的LastModified日期检查文件的LastModified日期,以检查文件是否已更改。

当我发出请求时,HttpClient获取HttpResponseMessage,但每次检查

response.Headers.Date.Value

我得到了请求的当前日期/时间。我理解,如果我请求文件的页面是由DB或其他动态方法生成的,则LastModified值将是请求发出的时间。

但是,我使用较旧的HttpWebRequest / Response尝试了相同的过程,我发现

response.Headers[HttpResponseHeader.LastModified]

将返回上次更改文件的日期,例如2种不同的方法返回不同的日期,HttpWebResponse给出日期为1/12/2017,HttpResponseMessage给出日期为2017年3月30日。

如何使用HttpWebResponse获取文件更改日期?

1 个答案:

答案 0 :(得分:10)

来自https://social.msdn.microsoft.com/Forums/windowsapps/en-US/c830971a-e60f-4759-ba2a-42638b0afad0/uwp-lastmodifiedheader-invalid?forum=wpdevelop

“Last-Modified HTTP标头被视为HTTP响应内容的一部分,而不是HTTP响应本身,”

我能够通过访问响应标头的内容而不是标题本身拉出LastModified日期

DateTime lastModified = result.Content.Headers.LastModified;