c# - HttpClient HttpResponseMessage LastModified 文件日期

标签 c# .net date dotnet-httpclient

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

当我发出请求时,HttpClient 得到一个 HttpResponseMessage,但每次我检查

response.Headers.Date.Value

我得到发出请求的当前日期/时间。我知道,如果我从中请求文件的页面是由数据库或其他动态方法生成的,则 LastModified 值将是发出请求的时间。

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

response.Headers[HttpResponseHeader.LastModified]

将返回文件最后更改的日期,例如2 种不同的方法返回不同的日期,HttpWebResponse 给出的日期是 1/12/2017,而 HttpResponseMessage 给出的日期是 3/30/2017。

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

最佳答案

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

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

我能够通过访问响应 header 的内容而不是 header 本身来提取 LastModified 日期

DateTime lastModified = result.Content.Headers.LastModified;

关于c# - HttpClient HttpResponseMessage LastModified 文件日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43125666/

相关文章:

c# - p/invoke 方法返回空结构

java - 需要当前日期在具有日期格式的 "UTC"时区

c# - 如何使用异步谓词过滤列表

.net - 使用 LINQ 混合 2 个数组

c# - 将 gRPC 服务绑定(bind)到 aspnetcore 中的特定端口

c# - AuthenticateAsServerAsync 失败

date - 如何在 Haskell 中将日期转换为 Int

javascript - 在 JavaScript 中处理日期(格式和时区)

c# - Task.WaitAll 抛出 OperationCanceledException

c# - 如何在 OncreateView 中运行一些异步的东西?