Delphi实现判断网址是否存在及是否可以打开的方法

所属分类: 软件编程 / Delphi 阅读数: 80
收藏 0 赞 0 分享

本例所述Delphi程序用于检测网址是否为404,也就是检测网址是否存在,或是否可以打开,针对不同的检查方法,会返回不同的结果。

程序主要代码如下:

unit address;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 Psock, NMHttp, StdCtrls, ComCtrls;
type
 TForm1 = class(TForm)
  Label1: TLabel;
  Edit1: TEdit;
  Button1: TButton;
  NMHTTP1: TNMHTTP;
  StatusBar1: TStatusBar;
  procedure Button1Click(Sender: TObject);
  procedure NMHTTP1Success(Cmd: CmdType);
  procedure NMHTTP1Failure(Cmd: CmdType);
  procedure NMHTTP1HostResolved(Sender: TComponent);
  procedure NMHTTP1InvalidHost(var Handled: Boolean);
  procedure NMHTTP1AuthenticationNeeded(Sender: TObject);
  procedure NMHTTP1Connect(Sender: TObject);
  procedure NMHTTP1ConnectionFailed(Sender: TObject);
  procedure FormActivate(Sender: TObject);
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
  procedure NMHTTP1Redirect(var Handled: Boolean);
  procedure Edit1KeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
 private
  { Private declarations }
 public
  { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
 url:string;
begin
 url:=Edit1.Text;
 StatusBar1.simpletext:='正在检验';
 NMHTTP1.Head(url);
end;
procedure TForm1.NMHTTP1Success(Cmd: CmdType);
begin
 case cmd of
 CmdHEAD:
  StatusBar1.SimpleText:='网址正确'
 end;
end;
procedure TForm1.NMHTTP1Failure(Cmd: CmdType);
begin
 case cmd of
 CmdHEAD:
  StatusBar1.SimpleText:='网址不正确,没有这个页面'
 end;
end;
procedure TForm1.NMHTTP1HostResolved(Sender: TComponent);
begin
 StatusBar1.SimpleText:='正确解析主机名';
end;
procedure TForm1.NMHTTP1InvalidHost(var Handled: Boolean);
begin
 StatusBar1.SimpleText:='不能解析主机名';
end;
procedure TForm1.NMHTTP1AuthenticationNeeded(Sender: TObject);
begin
 StatusBar1.SimpleText:='需要身份验证';
end;
procedure TForm1.NMHTTP1Connect(Sender: TObject);
begin
 StatusBar1.SimpleText:='连接到主机';
end;
procedure TForm1.NMHTTP1ConnectionFailed(Sender: TObject);
begin
 StatusBar1.SimpleText:='连接主机失败';
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
 Edit1.Text:='http://www.';
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 NMHTTP1.Destroy;
end;
procedure TForm1.NMHTTP1Redirect(var Handled: Boolean);
begin
 StatusBar1.SimpleText:='重定向到其它页面';
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if Key=VK_RETURN then
 begin
  StatusBar1.simpletext:='正在检验';
  NMHTTP1.Head(Edit1.Text);
 end;
end;
end.
更多精彩内容其他人还在看

为什么继续选择DELPHI(即将逝去的Delphi前景在何方)

已经钻DELPHI很深了,当然现在DELPHI是过了最辉煌的时代。但为什么要继续下去,而不转向其它的?这是不是死脑筋
收藏 0 赞 0 分享

Delphi 调用外部程序并阻塞到外部程序中

这篇文章主要介绍了Delphi 调用外部程序并阻塞到外部程序中的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

修改 Delphi 10.3.3 IDE 字体和字体大小

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。这篇文章主要介绍了修改 Delphi 10.3.3 IDE 字体和字体大小,需要的朋友可以参考下
收藏 0 赞 0 分享

解决delphi TAdoQuery组件的close方法导致”列名无效“错误的问题

今天小编就为大家分享一篇解决delphi TAdoQuery组件的close方法导致”列名无效“错误的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

delphi 字符串处理中的怪异现象与处理方式

今天小编就为大家分享一篇delphi 字符串处理中的怪异现象与处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

完美解决Indy 编译提示版本不一致的问题

今天小编就为大家分享一篇完美解决Indy 编译提示版本不一致的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

delphi 正弦曲线图

 在Delphi中没有直接正弦曲线的函数。但是在科学研究中,正弦曲线的应用是非常广泛的,本实例介绍如何绘制正弦曲线。
收藏 0 赞 0 分享

Delphi中判断文件是否为文本文件的函数

在用Delphi 编程处理文本文件的时候,如果要装载的文件比较大,你可能会想在文件装载过程中提供一个装载进度的提示--那么你就必需自己编写直接通过文件打开/读取函数来装载文件内容的函数。
收藏 0 赞 0 分享

c# 多线程编程 入门篇

多线程应该是编程工作者的基础技能, 但这个基础对我来讲的确有点难(起码昨天以前是这样).
收藏 0 赞 0 分享

DELPHI7.0 获取硬盘、CPU、网卡序列号的代码

DELPHI7.0 获取硬盘、CPU、网卡序列号的代码,使用DELPHI编程的朋友可以参考下。
收藏 0 赞 0 分享
查看更多