您的位置:首页 >> 问答系统 >> DELPHI相关 >> 网络编程 >> 如何检测一个网址是否有效?
已解决
提问者:mychj2 - 童生≈一级

如何检测一个网址是否有效?

悬赏金额(1积分=0.1元):0 - 提问时间:2008-6-12 11:22:20 - 阅读次数:-回答本问题若被采纳你可得积分为:0*.8=0
我用DBGridEh连接Access数据库,里面保存有一些网址,比如:http://www.gomydelplhi.com/donate.asp,我想检测这些链接是否还可以访问.请问如何实现呢?请高手们指点一下,最好有代码,给个思路也行啊
问题补充提高悬赏无满意答案举行投票撤消问题我来回答评论举报
最佳答案
回答者:mychj - 童生≈一级 - 06-12 11:23
试一下这个,别处抄的

uses:wininet
function   CheckUrl(url:   string):   Boolean;
  var
      hSession,   hfile,   hRequest:   hInternet;
      dwindex,   dwcodelen:   dword;
      dwcode:   array[1..20]   of   Char;
      res:   PChar;
  begin
      Result   :=   false;
      if   Pos(''http://&;#39;,   LowerCase(url))   =   0   then     url   :=   ''http://&;#39;   +   url;
      hSession   :=   InternetOpen(''InetURL:/1.0'',   INTERNET_OPEN_TYPE_PRECONFIG,
          nil,   nil,   0);
      if   Assigned(hsession)   then
      begin
          hfile   :=   InternetOpenUrl(hsession,   PChar(url),   nil,   0,   INTERNET_FLAG_RELOAD,   0);
          dwIndex   :=   0;
          dwCodeLen   :=   10;
          HttpQueryInfo(hfile,   HTTP_QUERY_STATUS_CODE,   @dwcode,   dwcodeLen,   dwIndex);
          res   :=   PChar(@dwcode);
          Result   :=   (res   =   ''200'')   or   (res   =   ''302'');   //200,302未重定位标志
          if   Assigned(hfile)   then
          InternetCloseHandle(hfile);
          InternetCloseHandle(hsession);
      end;
  end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     if CheckUrl(edit1.Text) then
    showmessage(''OK'')
  else
    showmessage(''Error'');
end;
能成功检测单个网址的有效性了,愿与大家共享,同时也希望高手再完善一下,如何检测显示在DBGridEh里的Access数据库里的全部URL,并在前面做上有效与无效的标记.

提问者对答案的评价:
感谢mychj的精彩解答
相关问题