用Indy控件访问HTTPS

发布时间 2023-05-25 16:07:54作者: 涂磊

https://www.cnblogs.com/guorongtao/p/11976664.html

访问 Web 网站,最简单用法直接使用 TIdHTTP 控件:
例如:AA := IdHTTP1.Get('www.baidu.com.');
访问 https 的网站,需要 SSL 库。
在 Windows 下,去 https://indy.fulgan.com/SSL/ 下载最新的 SSL 的库。
         openssl-1.0.2q-i386-win32.zip
下载后,解压缩,包括两个 dll 文件:
ssleay32.dll 和 libeay32.dll;
直接放到程序编译好的 EXE 相同文件夹底下

这里下载32位DLL

链接:https://pan.baidu.com/s/17tzB0oNqWrZHS9BeD4TsmQ
提取码:cx4e

在Delphi7下比较难找,给一个链接:https://download.csdn.net/download/baidu_24930139/12011774
 
TIdHTTP 控件绑定 TIdSSLIOHandlerSocketOpenSSL 控件:
1. IOHandler 这个属性,下拉,选择 IdSSLIOHandlerSocketOpenSSL1;

 

2. HandleRedirects 属性:设置为 True;默认是 False;  网页重定向 ,不开的话如果网页有重定向,跳转网页会报错 http/1.1 301 moved permanently 


IdSSLIOHandlerSocketOpenSSL1 的属性设置:SSLOptions -> Method 属性,设置为:sslvTLSv1_2,因为openssl-1.0.2q-i386-win32.zip

 IdHTTP1.Request.UserAgent:='Mozilla/4.0' ;
memo1.Text:=  IdHTTP1.Get('https://www.baidu.com');
WebBrowser1.Navigate('https://www.baidu.com');