If you want to implement an HTTP client access in your application, you may consider several choices:
- Use the provided Indy components;
- Use third-party components like Synapse, ICS or your own WinSock-based wrapper;
- Use WinINet;
- Use WinHTTP.
For our ORM, we tried to avoid external dependencies, and did not have the
need of all Indy's features and overhead.
We fist wrote our own WinSock wrapper, then tried out
WinInet.
When used on our testing benchmark, we found out that WinINet was
dead slow.
Then we tried WinHTTP, the new API provided by Microsoft, and we found
out this was blazing fast. As fast as direct WinSock access,
without the need of writing all the wrapper code.