我正在使用Delphi编写一个下载管理器,其中包括诸如可恢复下载和通过代理进行下载等自定义功能。
我正在研究不同的组件解决方案:Indy和NetHTTP,两者看起来非常相近。
TNetHTTPClient
似乎是winhttp.dll
的接口。TIdHTTP
似乎是wininet.dll
的接口(但我不确定)。TIdHTTP
看起来是一个非常古老的组件(也许非常稳定/经过测试),并且有大量在线文档。TNetHTTPClient
似乎是一个非常新的组件,并且没有很好的在线文档。
我有些犹豫...应该选择哪个?
关键问题是:这两个组件之间的主要区别是什么?
我的问题有些有争议(主要基于观点),但我没有找到任何实际比较这两个组件的内容。
TIdHTTP
依赖于 OpenSSL 来支持 HTTPS*” - 实际上,它仅仅是默认使用 OpenSSL,因为这是 Indy 捆绑的默认实现。但从技术上讲,它并不需要 OpenSSL。您可以使用任何 SSL/TLS 库,只需将其包装在TIdSSLIOHandlerSocketBase
派生类中,然后将其附加到TIdHTTP
(或任何其他基于 TCP 的组件)即可。例如,Eldos SecureBlackbox 提供了一个这样的包装器类来支持其 SSL/TLS 引擎。Indy 团队正在开发一个 SChannel 包装器作为 OpenSSL 在 Windows 上的替代品。 - Remy Lebeau