Delphi/Indy10如何在不下载内容的情况下检查https URL是否有效
以前我需要检查的URL是http,我使用TidTCPClient模拟http协议来确定web服务器上存在的文件。现在他们已经切换到https,我不知道怎么做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的直通设
我是否可以将TIdHTTP与TIdSSLIOHandlerSocketOpenSSL hander一起使用,然后使用一些Indy函数来仅确定资源是否存在?我已经安装了OpenSSL。如果您只需将
TIdSSLIOHandlerSocketOpenSSL
分配给客户端的IOHandler
,将客户端的端口更改为443,并将IOHandler的直通设置为False,那么您现有的TIdTCPClient
代码应该会继续工作。HTTPS只是SSL/TLS连接上的HTTP,它不会改变HTTP本身
但要回答您的问题,是的,如果您愿意,可以切换到TIdHTTP
。您可以使用HTTPHEAD
命令(HTTP.HEAD()
方法)检查URL是否有效,而无需下载完整的资源 我记得最初尝试过Head,但它不能正确地与此服务器配合使用,所以实现了我自己的解决方案。我没有意识到SSL是在TCP级别实现的。现在可以了,谢谢。@RossHEAD
可用于通过GET
访问的任何资源。虽然如果资源是动态生成的,结果将是不可预测的。