Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi/Indy10如何在不下载内容的情况下检查https URL是否有效_Delphi_Delphi 7_Indy_Indy10 - Fatal编程技术网

Delphi/Indy10如何在不下载内容的情况下检查https URL是否有效

Delphi/Indy10如何在不下载内容的情况下检查https URL是否有效,delphi,delphi-7,indy,indy10,Delphi,Delphi 7,Indy,Indy10,以前我需要检查的URL是http,我使用TidTCPClient模拟http协议来确定web服务器上存在的文件。现在他们已经切换到https,我不知道怎么做 我是否可以将TIdHTTP与TIdSSLIOHandlerSocketOpenSSL hander一起使用,然后使用一些Indy函数来仅确定资源是否存在?我已经安装了OpenSSL。如果您只需将TIdSSLIOHandlerSocketOpenSSL分配给客户端的IOHandler,将客户端的端口更改为443,并将IOHandler的直通设

以前我需要检查的URL是http,我使用TidTCPClient模拟http协议来确定web服务器上存在的文件。现在他们已经切换到https,我不知道怎么做


我是否可以将TIdHTTP与TIdSSLIOHandlerSocketOpenSSL hander一起使用,然后使用一些Indy函数来仅确定资源是否存在?我已经安装了OpenSSL。

如果您只需将
TIdSSLIOHandlerSocketOpenSSL
分配给客户端的
IOHandler
,将客户端的
端口更改为443,并将IOHandler的
直通设置为False,那么您现有的
TIdTCPClient
代码应该会继续工作。HTTPS只是SSL/TLS连接上的HTTP,它不会改变HTTP本身


但要回答您的问题,是的,如果您愿意,可以切换到
TIdHTTP
。您可以使用HTTP
HEAD
命令(HTTP.HEAD()
方法)检查URL是否有效,而无需下载完整的资源

我记得最初尝试过Head,但它不能正确地与此服务器配合使用,所以实现了我自己的解决方案。我没有意识到SSL是在TCP级别实现的。现在可以了,谢谢。@Ross
HEAD
可用于通过
GET
访问的任何资源。虽然如果资源是动态生成的,结果将是不可预测的。