var 
    hIs,hIc,hIR: Hinternet; 
begin 
  hIs  :=  InternetOpen('HttpGet',  INTERNET_OPEN_TYPE_DIRECT, 
                                                NIL,  NIL,0); 
  hIc  :=  InternetConnect(hIs,  www.sina.com.cn,  INTERNET_DEFAULT_HTTP_PORT, 
                                                NIL,  NIL,  INTERNET_SERVICE_HTTP,0,0); 
  hIR  :=  HttpOpenRequest(hIC,  nil,  '/动态页面.html',  nil,  nil,nil,  0,0); 
  if  HttpSendRequest(hIR,  nil,  0,nil,0)  then 
  begin 
    while  InternetReadFile(hIR,  pcbuf,1024,dwRead)  do 
    {} 
  end; 
end; 以上代码每次触发取出的pcbuf都是完全一样的,我怀疑是InternetOpen第二次以后读的是本地缓存文件中的信息,不知道怎么搞可以让它每次取出的值不同,请大家指点下

解决方案 »

  1.   

    应该不是缓存的问题,可能是你的参数错误了吧
    HttpOpenRequest(hIC,  nil,  '/动态页面.html',  nil,  nil,nil,  0,0);  你把 '/动态页面.html',前面的路径写完整试一时试
      

  2.   

    InternetOpen第二次以后读的是本地缓存文件中的信息. 你怀疑没错
    把缓存清掉,有个API的, DELETE开头的,你去查下
      

  3.   

    HttpOpenRequest中加上INTERNET_FLAG_NO_CACHE_WRITE试试
      

  4.   

    DeleteUrlCacheEntry 清理缓存 
      

  5.   

    try...var
    szAcceptType: array[0..1] of pChar;begin
    ...
    szAcceptType[0] := pChar('*/*');
    szAcceptType[1] := nil;WiniNet.HttpOpenRequest(hConnect, pChar('GET'), pChar('/动态页面.html'), HTTP_VERSION,
       nil, @szAcceptType, INTERNET_FLAG_DONT_CACHE or INTERNET_FLAG_PRAGMA_NOCACHE or INTERNET_FLAG_RELOAD or INTERNET_FLAG_EXISTING_CONNECT, 1);end;