Http 使用Delphi检查远程服务器上是否存在文件

Http 使用Delphi检查远程服务器上是否存在文件,http,delphi,Http,Delphi,我需要使用delphi检查服务器上是否存在文件。。 其思想是向服务器发送请求(例如:)并检查响应的状态代码。。 在delphi中是如何实现的?您可以使用TIdHTTP类(包含在delphi中)。只需在运行时创建一个实例,并使用其Head方法检索有关服务器资源的信息 MyIdHTTP.Head(TheURL); ResponseCode := MyIdHTTP.Response.ResponseCode; // 200 = OK etc ContentLength := MyIdHTTP.Res

我需要使用delphi检查服务器上是否存在文件。。 其思想是向服务器发送请求(例如:)并检查响应的状态代码。。
在delphi中是如何实现的?

您可以使用TIdHTTP类(包含在delphi中)。只需在运行时创建一个实例,并使用其Head方法检索有关服务器资源的信息

MyIdHTTP.Head(TheURL);
ResponseCode :=  MyIdHTTP.Response.ResponseCode; // 200 = OK etc
ContentLength := MyIdHTTP.Response.ContentLength;
请注意,它不会下载整个资源,并且ContentLength中的值不保证ok(例如,对于动态创建的资源)

超(抽象)文本传输协议。
为此,您可以使用ftp协议

检查应答,在您的情况下,使用
HEAD
请求并检查响应状态代码,它应该是200-OK、3xx-redirect或4xx error。请参阅。使用HTTP协议无法真正检查远程服务器上是否存在文件,只能检查URL是否有效。如果文件存在,但服务器不想为其提供服务,则可能返回
403
状态代码,或
500
,甚至可能返回
404
。在翻转大小上,仅仅因为web服务器返回状态代码
200
,并不意味着存在具有给定名称的文件!只有知道HTTP服务器是如何配置的,测试才会起作用!请注意,在某些奇怪的情况下,这可能需要很长时间。我建议将所有这些可能会在30到60秒的时间内失败的项目放在后台线程中。我还建议在执行Http头请求时,在每种情况下都明确指定超时,而不是保留默认值。这使得操作可能需要很长时间才能在代码中更加明确和清晰。这应该是注释。