リンクぎれかどうか確認するには?


通りすがり  2005-03-10 03:30:23  No: 13689

あるURLを用意し、それがちゃんと存在するURL(リンク先があるのか)なのかを調べたいのですが出来ません。
コンポーネントは特に問いませんので、やり方があればぜひ教えていただきたい次第です。


にしの  2005-03-10 03:59:45  No: 13690

こんな感じでしょうか。
uses wininet;を追加してください。
キャッシュが残っているとうまく判別できないかも。

function ExistsUrl(const Url: String): Boolean;
var
  hInet, hFile: HINTERNET;
begin
  hInet :=  InternetOpen('WinInet',
  INTERNET_OPEN_TYPE_PRECONFIG,
    nil,
    nil,
    0);

  hFile := InternetOpenUrl(
    hInet,
    PCHAR(Url),
    nil,
    0,
    INTERNET_FLAG_RELOAD,
    0);
  Result := (hFile <> nil);

  InternetCloseHandle(hFile);
  InternetCloseHandle(hInet);

end;


pppi  2005-03-10 04:16:14  No: 13691

function ExistURL(URLString : string) : boolean;
  var vIdHTTP : TIdHTTP;
begin
  // Delphi付属のindy コンポーネント
  Result := False;
  vIdHTTP := TIdHTTP.Create;
  try
    try
      vIdHTTP.Head(URLString);
      Result := True;
    except
      on EIdUnknownProtocol do
       begin
         // 不明なプロトコル
       end;
      on EIdHTTPProtocolException do
       begin
         // ファイルがない
       end;
      else
       begin
        // なんだろうね
       end;
     end;
  finally
    vIdHTTP.Free;
  end;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加