如何实现获得一个网页的最后更新时间?有api 可以实现吗?

winay 2002-03-22 04:26:05
我要编写一个网页下载程序。请问
如何实现获得一个网页的最后更新时间?有api 可以实现吗?
...全文
189 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
winay_dd 2002-04-01
  • 打赏
  • 举报
回复
no?
winay 2002-03-27
  • 打赏
  • 举报
回复
这样的办法我试过的,对有些网站是使用的,对有些是不行的
因为有些网站的html是动态生成的,不存在什么last_modify属性
111222 2002-03-27
  • 打赏
  • 举报
回复
void Head(CString &csResponse,
LPCTSTR szServer,
LPCTSTR szURI,
unsigned short &nPort,
SYSTEMTIME* pTime,
DWORD& dwHttpStatus)
{

dwHttpStatus = 0;
CInternetSession* pSession = NULL;
CHttpConnection* pConnection = NULL;
CHttpFile* pHttpFile = NULL;
LPSTR pBuffer= new char[1024];


try
{
pSession = new CInternetSession(
NULL,
1,
INTERNET_OPEN_TYPE_PRECONFIG);
pConnection = pSession->GetHttpConnection(szServer,
nPort,
NULL,
NULL);
pHttpFile = pConnection->OpenRequest(
CHttpConnection::HTTP_VERB_HEAD,
szURI,
NULL,
1,
NULL,
NULL,
INTERNET_FLAG_EXISTING_CONNECT
| INTERNET_FLAG_RELOAD
| INTERNET_FLAG_DONT_CACHE);
if (pHttpFile->SendRequest())
{

if(pHttpFile->QueryInfoStatusCode(dwHttpStatus))
{
if (dwHttpStatus >= 400)
{
DWORD nFlag2 = HTTP_QUERY_RAW_HEADERS_CRLF;
pHttpFile->QueryInfo(nFlag2, csResponse, NULL);
}
else//200 - 300
{
if(pTime!=NULL)
pHttpFile->QueryInfo(HTTP_QUERY_FLAG_SYSTEMTIME|
HTTP_QUERY_LAST_MODIFIED,pTime);
int nRead = 0;
do
{
nRead = pHttpFile->Read(pBuffer, 1023);
if (nRead != 0)
{
pBuffer[nRead] = 0;
csResponse += pBuffer;
}
} while (nRead != 0);
}
}

}
}
catch (CInternetException* e)
{
e->Delete();
}
catch (...)
{
}

if (pBuffer != NULL)
{
delete pBuffer;
pBuffer = NULL;
}

if (pHttpFile != NULL)
{
pHttpFile->Close();
delete pHttpFile;
}
if (pConnection != NULL)
{
pConnection->Close();
delete pConnection;
}

if (pSession != NULL)
{
pSession->Close();
delete pSession;
}
}


演示:

CString csResponse;
unsigned short nPort = 80;
SYSTEM time;
DWORD dwStatusCode;
Head(csResponse,"www.csdn.net","/",nPort ,&time,dwStatusCode);


上述代码我没做过测试,请你把测试结果告诉我,好吗?
winay 2002-03-22
  • 打赏
  • 举报
回复
我试过的,比如sohu的一片新闻page,就不能获得它什么时候更新过了
masterz 2002-03-22
  • 打赏
  • 举报
回复
能获得单独一个page的更新时间
winay 2002-03-22
  • 打赏
  • 举报
回复
这么函数只能获得整个网站的更新时间。好像不能获得单独末一个叶面的更新时间的
winay 2002-03-22
  • 打赏
  • 举报
回复
在httpqueryinfo函数里,可以获得资源的最近修改时间。但是有的地方可以,有的地方这么函数不起作用的
masterz 2002-03-22
  • 打赏
  • 举报
回复
Look at
CHttpFile::QueryInfo
HTTP_QUERY_LAST_MODIFIED

strip 2002-03-22
  • 打赏
  • 举报
回复
网页的最后更新时间没有
你想想,我写了一个asp, 昨天写的,今天我访问到的却是今天的实时新闻

你说这个网页最后更新时间是什么? 如果你说是昨天的话,那么,有哪个服务器会把这个网页在本地文件系统中的属性告诉你?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧