Previously the URL I needed to check was http and I used TidTCPClient to emulate the http protocol to determine the file at the web server existed. Now they have switched to https and I don't know how to do it.
Can I use TIdHTTP with the TIdSSLIOHandlerSocketOpenSSL hander, and then some Indy function to only determine the resource exists? I have OpenSSL installed.
Your existing TIdTCPClient
code should continue to work if you simply assign a TIdSSLIOHandlerSocketOpenSSL
to the client's IOHandler
, change the client's Port
to 443, and set the IOHandler's PassThrough
to False. HTTPS is just HTTP over an SSL/TLS connection, it doesn't change HTTP itself.
But to answer your question, yes, you can switch to TIdHTTP
if you want to. You can use the HTTP HEAD
command (the TIdHTTP.Head()
method) to check if a URL is valid without having to download a full resource.