Mark Williams 14 Posted July 11, 2020 I have been testing TIDHttp against THTTPClient. Using a local server with TLS1 and nothing else going on but the test downloads I have found that there is little difference in speed between TIDHttp and THttpClient. I have been using THTTPClient up until now, but thought I had better check out TIDHTTP. If speed is not a reason for changing and I am otherwise happy with the THTTPClient are there any other reasons I should consider changing for? Share this post Link to post
Fr0sT.Brutal 900 Posted July 24, 2020 THTTPClient uses high-level OS facilities and libs, TIDHTTP is based on low-level sockets and OpenSSL libs that must be provided for TLS to work. My guess is that Id is more feature rich but if you just need to poll some URL from time to time, THTTPClient is good choice 1 Share this post Link to post
Mark Williams 14 Posted July 24, 2020 I'm doing a lot more than polling an url, but I don't appear to be having any issues with THTTPClient and it is pretty simple to set up and use and it doesn't need OpenSSL, I personally can't see any particular reason to switch to Indy. although it would be pretty simple to do so, I was just wondering if there were any known issues/frailties with THTTPClient that would provide an imperative for switching to Indy. Share this post Link to post
Remy Lebeau 1421 Posted July 24, 2020 10 hours ago, Fr0sT.Brutal said: THTTPClient uses high-level OS facilities and libs, TIDHTTP is based on low-level sockets and OpenSSL libs that must be provided for TLS to work. Technically speaking, Indy DOES NOT depend on OpenSSL specifically. Indy uses a plugin model so that any SSL/TLS library can be used, all you need is a TIdSSLIOHandlerSocketBase-derived class to wrap the library's API. It is just that Indy provides a DEFAULT class which uses OpenSSL (TIdSSLIOHandlerSocketOpenSSL), since OpenSSL is portable to multiple platforms. But Indy as a whole doesn't care which SSL/TLS library you actually use at runtime. For example, Eldos SecureBlackbox provides an Indy SSLIOHandler for its own SSL/TLS implementation. And eventually I would like to provide an SChannel SSLIOHandler as a replacement for OpenSSL on Windows. Share this post Link to post
timfrost 78 Posted July 24, 2020 14 minutes ago, Remy Lebeau said: Eldos SecureBlackbox provides an Indy SSLIOHandler for its own SSL/TLS implementation Provided, not provides; and Eldos no longer owns the emasculated remains of this redesigned product. Share this post Link to post
Remy Lebeau 1421 Posted July 24, 2020 (edited) 2 minutes ago, timfrost said: Provided, not provides; and Eldos no longer owns the emasculated remains of this redesigned product. OK. But my point still stands. Other non-OpenSSL libraries can be plugged into Indy with a little work. Edited July 24, 2020 by Remy Lebeau Share this post Link to post
Cristian Peța 107 Posted July 24, 2020 THTTPClient doesn't work on Windows 7 and XP with SSL. On XP the message is "Server Certificate Invalid or not present" I don't find the message from Windows 7 but here is something about: https://stackoverflow.com/questions/50765476/delphi-tnethttprequest-tnethttpclient-works-on-win-10-but-not-win-7 1 Share this post Link to post
Mark Williams 14 Posted July 25, 2020 11 hours ago, Cristian Peța said: THTTPClient doesn't work on Windows 7 and XP with SSL. The post seems to mention a fix, but I haven't tried it. I have an old Windows 7 machine here somewhere and will check it out. However, since Windows 7 is no longer supported and, presumably, no longer secure to use and my app has to be run in a secure environment, it is probably okay for me to say that Windows 7 is not supported. Share this post Link to post
Fr0sT.Brutal 900 Posted July 25, 2020 15 hours ago, Remy Lebeau said: Technically speaking, Indy DOES NOT depend on OpenSSL specifically. Indy uses a plugin model so that any SSL/TLS library can be used, all you need is a TIdSSLIOHandlerSocketBase-derived class to wrap the library's API. It is just that Indy provides a DEFAULT class which uses OpenSSL (TIdSSLIOHandlerSocketOpenSSL), since OpenSSL is portable to multiple platforms. But Indy as a whole doesn't care which SSL/TLS library you actually use at runtime. For example, Eldos SecureBlackbox provides an Indy SSLIOHandler for its own SSL/TLS implementation. And eventually I would like to provide an SChannel SSLIOHandler as a replacement for OpenSSL on Windows. Yes, it CAN use any lib but currently only OpenSSL is supported 😜 Share this post Link to post