I'm writing a download manager in Delphi with some custom features like resumable downloads and downloading through proxies.
I'm studing different component solutions: Indy and NetHTTP, both seem very close.
TNetHTTPClient
seem to be an interface of winhttp.dll
.
TIdHTTP
seem to be an interface of wininet.dll
(but i'm not sure).
TIdHTTP
seems like a very old component (maybe very stable/tested) and has tons of documentation online.
TNetHTTPClient
seems to be a very recent component, and doesn't have good documentation online.
I'm a bit undecided... which one to choose?
The point is: what is the main difference between these two components?
My question is a bit disputable (primarily opinion-based), but I haven't found any practical comparison between these two components.
Indy DOES NOT use WinInet/WinHTTP at all. It uses cross-platform BSD/POSIX based socket APIs directly (like WinSock on Windows), implementing Internet protocols (like HTTP) completely from scratch.
TIdHTTP
is a manual HTTP implementation.
TNetHTTPClient
, on the other hand, wraps system-provided HTTP APIs instead (like WinInet/WinHTTP on Windows).