DELPHI WIn7下使用 NetHttpClient 请求HTPPS 网站
转载自:WIn7 下使用 NetHttpClient 请求HTPPS 网站 - EEEEEEEEEEEEEEEEEEE - 博客园 (cnblogs.com)
在WIN7 下使用 HttpClient 会报以下两种错 ;
1 Server Certificate Invalid or not present
2 Error sending data: (12175) 发生了安全错误.
3 System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。
经查询资料是因为WIn7 默认不支持这个协议
详细见:
https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
解决方法:
指定 HttpClient.SecureProtocols 为TLS12
HttpClient := TNetHTTPClient.Create(nil); {$IFDEF MSWINDOWS} // 检查操作系统版本为 Windows 7 if (Win32MajorVersion = 6) and (Win32MinorVersion = 1) then HttpClient.SecureProtocols := [THTTPSecureProtocol.TLS12]; {$ENDIF}