如何检测一个网址是否有效?
悬赏金额(1积分=0.1元):0 - 提问时间:2008-6-12 11:22:20 - 阅读次数:-回答本问题若被采纳你可得积分为:0*.8=0
最佳答案 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://', LowerCase(url)) = 0 then url := ''http://' + 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的精彩解答
