wininet如何获得网页的HTTP_QUERY_LAST_MODIFIED

south2000 2008-07-30 01:04:04
我要定时抓网页,希望先判断一下网页的HTTP_QUERY_LAST_MODIFIED,如果网页没有改动过,就不抓了,这样科研降低流量。

////////////////////////////////////////////
我抓网页是这样做的,就抓网页而言,是可以工作了。
HINTERNET hSession = ::InternetOpen(L"test", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET hURL = ::InternetOpenUrl(hSession, L"www.sina.com.cn", NULL, 0, INTERNET_FLAG_RELOAD, 0);
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = ::HttpQueryInfo(hURL, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen, NULL);
if(bSuccess && dwStatus == HTTP_STATUS_OK)
{
::InternetReadFile(hURL, szReadBuffer, sizeof(szReadBuffer), &dwNumberOfBytesRead);
}
////////////////////////////////////////////

我尝试在BOOL bSuccess = ::HttpQueryInfo(hURL, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen, NULL);这句后面添加获取时间的语句,但不能成功:
SYSTEMTIME st;
DWORD dwLen = sizeof(SYSTEMTIME);
bSuccess = ::HttpQueryInfo(hURL, HTTP_QUERY_LAST_MODIFIED | HTTP_QUERY_FLAG_SYSTEMTIME, &st, &dwLen, NULL);
发现返回的bSuccess是FALSE;


请问,怎么办?谢谢!
...全文
219 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
south2000 2008-07-31
  • 打赏
  • 举报
回复
WinEggDrop,谢谢你。

我这里是对网页判断修改时间,而不是对其中的文件判断。

比如说,这个网页上有个表格,大家用IE打开这个网页就可以看到。今天,这个网页的作者在表格中添加了一行内容,那么这个网页的LAST_MODIFIED时间就会变了。

我就是想拿到这个时间。
WinEggDrop 2008-07-30
  • 打赏
  • 举报
回复
你根本没指定哪个文件.
小李匪盗 2008-07-30
  • 打赏
  • 举报
回复
很正常吧,服务器不一定会返回给你这个参数。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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