ulr*_*chb 11
你可以使用Indy.
首先包括IdHTTP.
您可以通过这种方式检索大小:
procedure TFormMain.Button1Click(Sender: TObject);
var
Http: TIdHTTP;
begin
Http := TIdHTTP.Create(nil);
try
Http.Head('http://live.sysinternals.com/ADExplorer.exe');
ShowMessage(IntToStr(Http.Response.ContentLength));
finally
Http.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
PA.*_*PA. 10
简短回答:使用Indy Delphi的TIdHttp组件中提供的HTTP HEAD命令.
细节:
HTTP协议定义了一种HEAD方法.
9.4头
HEAD方法与GET相同,只是服务器不能在响应中返回消息体.响应HEAD请求的HTTP头中包含的元信息应该与响应GET请求时发送的信息相同.该方法可用于获得关于请求所暗示的实体的元信息,而无需转移实体主体本身.此方法通常用于测试超文本链接的有效性,可访问性和最近的修改.
对于HEAD请求的响应可以是可缓存的,因为响应中包含的信息可以用于从该资源更新先前缓存的实体.如果新的字段值指示缓存的实体从当前实体的不同(如将在内容长度,内容,MD5,ETag的或上次修改的变化来表示),那么缓存必须把缓存条目为陈旧.
HEAD要求响应与对应于GET请求的响应相同,但没有响应主体,检索完整的响应头,而不是整个内容.
检索到的HTTP响应标头记录在Wikipedia上的HTTP标头列表中. http://en.wikipedia.org/wiki/List_of_HTTP_headers
HTTP标头构成HTTP请求的核心,在HTTP响应中非常重要.它们定义了所请求数据的各种特征或已提供的数据.标题通过空行与请求或响应正文分隔.HTTP标头可以是接近任意的字符串,但通常只能理解一些字符串.
始终为有效URL检索内容的Content-Length标头之一是标头.
14.13内容长度
内容长度实体头字段指示实体主体的大小,以字节为单位的十进制数,发送到接收方,或在HEAD方法的情况下,这将被发送的实体主体的大小有请求是GET.
Content-Length = "Content-Length" ":" 1*DIGIT一个例子是
Content-Length: 3495应用程序应该使用此字段来指示消息正文的传输长度,除非4.4节中的规则禁止这样做.
任何大于或等于零的Content-Length都是有效值.第4.4节描述了如果没有给出Content-Length,如何确定消息体的长度.
请注意,此字段的含义与MIME中的相应定义明显不同,后者是"message/external-body"内容类型中使用的可选字段.在HTTP中,只要在传输之前确定消息的长度,就应该发送它,除非第4.4节中的规则禁止这样做.
从Delphi中,将TIdHttp组件拖放到表单中.并将以下代码粘贴到您的一个delphi事件处理方法中.
var
url: string; // must contain a fully qualified url
contentLength: integer;
begin
....
contentLength:=0;
try
Idhttp1.Head(url);
contentLength:=idhttp1.response.ContentLength;
except end;
....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5363 次 |
| 最近记录: |