CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

奇怪的wininet,为什么服务器的数据变了,抓到的数据却没变

楼主ppzine(老鹰)2006-06-01 14:52:08 在 VC/MFC / 网络编程 提问

我写了点抓网页的代码:  
  CInternetSession   mySession;  
  CHttpFile*   myHttpFile=NULL;  
  CString   myData="";  
  CString   s;  
   
  try  
  {  
  myHttpFile=(CHttpFile*)mySession.OpenURL("http://a.aspx");  
  while(myHttpFile->ReadString(myData))  
  {  
  s+=myData;  
  }  
  myHttpFile->Close();  
  delete   myHttpFile;  
  mySession.Close();  
  delete   mySession;  
  }catch(CException   *e)  
  {  
  e->Delete();  
  return   "Err";  
  }  
  return   s;  
   
  现在问题是,我每一次能抓到变化的数据,可以不关闭程序,在次请求,和第一次的数据一样。 问题点数:20、回复次数:4Top

1 楼ppzine(老鹰)回复于 2006-06-02 09:02:13 得分 0

没人来,自己顶Top

2 楼DrSmart(斯玛特)回复于 2006-06-05 17:06:16 得分 5

ie缓存问题Top

3 楼ppzine(老鹰)回复于 2006-06-08 18:13:45 得分 0

如何清缓存Top

4 楼seasol(海子@CSDN助手:http://www.cuteie.com/other.asp)回复于 2006-06-08 22:38:22 得分 15

在做“CSDN助手”时也遇到过这个问题。由于IE缓存的问题,使得再次抓取的数据不能立即反映变化。  
  清存缓存是一种方法。不过可以通过增加一个请求头部信息,If-Modified-Since,将日期设置为过去的时间。那么,底层的wininet总是会向服务器请求最新的数据了。  
  我使用的是"Msxml2.XMLHTTP"对象,可能添加头部的细节不同,但机制是一致的。  
   
  下面附If-Modified-Since头部的构造。  
  更详细的信息请参考“CSDN助手”的源代码。  
  http://blog.csdn.net/seasol/archive/2006/06/03/771376.aspx  
   
   
  //构造头部信息(名值对)  
  void   CCSDNTools::getOldTimePair(CString&   sTime)  
  {  
  getOldTime(sTime);  
   
  sTime="If-Modified-Since:"+sTime;  
  }  
   
  //获取过期的时间  
  void   CCSDNTools::getOldTime(CString&   sTime)  
  {  
  //  
  SYSTEMTIME   st;  
  memset(&st,0,sizeof(st));  
  st.wYear=2000;  
  st.wMonth=1;  
  st.wDay=1;  
   
  //  
  char*   szTime=sTime.GetBuffer(INTERNET_RFC1123_BUFSIZE);  
  BOOL   bhr=InternetTimeFromSystemTime(   &st,   INTERNET_RFC1123_FORMAT,   szTime,   INTERNET_RFC1123_BUFSIZE);  
  sTime.ReleaseBuffer();  
  }  
   
   
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:ppzine
  • DrSmart
  • seasol

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo