我正在尝试在ASP.NET中构建Web应用程序,我需要从时间服务器检索时间。解释我需要这样做的原因太长了,但是,基本上,我需要连接到时间服务器(希望通过Web服务)并检索该服务器当前时间。
我知道NTP协议的存在,并且它可以用于这些目的。但是,如何找到服务器地址并使用Web服务才能获得时间呢?
如何从我的网络应用程序中的服务器获取时间信息?
三江源
答案 0 :(得分:2)
您没有说明如何选择要获得的服务器时间。我想你想首先从远程服务器获取时间的原因是你的代码在没有本地时钟的设备上运行。
您当然可以向某个NTP服务器发出客户端NTP请求以获取时间。也许你想使用pool.ntp.org
作为NTP服务器。
但是如果您更喜欢使用Web服务,那很幸运,因为您实际上可以从现有的任何Web服务器获取当前时间:它们碰巧在它们发送的每个响应的HTTP头中发出它!请立即注意来自http://stackoverflow.com/的此HTTP响应中的Date
标头:
curl --head http://stackoverflow.com/
HTTP/1.1 200 OK
Cache-Control: public, max-age=3
Content-Length: 197603
Content-Type: text/html; charset=utf-8
Expires: Thu, 05 Jan 2012 17:59:47 GMT
Last-Modified: Thu, 05 Jan 2012 17:58:47 GMT
Vary: *
Date: Thu, 05 Jan 2012 17:59:42 GMT
因此,只需选择一个Web服务器,向其发出HTTP请求(针对任何页面),并从响应中的Date
标头获取当前时间。您可以使用HEAD
方法而不是GET
方法,因为您实际上并不需要响应正文。