DELPHI WIn7下使用 NetHttpClient 请求HTPPS 网站

发布时间 2023-11-22 11:40:45作者: 一曲轻扬

转载自:WIn7 下使用 NetHttpClient 请求HTPPS 网站 - EEEEEEEEEEEEEEEEEEE - 博客园 (cnblogs.com)

WIn7 下使用 NetHttpClient 请求HTPPS 网站

在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}