WinHTTP - 与服务器的连接异常终止

WinHTTP - The connection with the server was terminated abnormally

我导入 WinHTTP 并尝试在 https url 中执行请求,如下所示:

function TForm1.GetPage(AURL: String): String; 
var 
  WinHttpRequest: IWinHTTPRequest; 
begin 
  CoInitialize(nil); 
  try 
    WinHttpRequest := CoWinHttpRequest.Create; 
    WinHttpRequest.Open('GET', AURL, False); 
    WinHttpRequest.Send(EmptyParam); 
    Result := WinHttpRequest.ResponseText; 
  finally 
    WinHTTPRequest := nil; 
    CoUninitialize; 
  end; 
end;

它在相同的页面上工作(例如:https://www.google.com), but not in others (ex: https://sourceforge.net),错误 "The connection with the server was terminated abnormally"。

是否还有其他设置我忘记了?

我正在使用 Delphi 2010。

大多数服务器已经从接受 SSL 传入流量转向支持 TLS 协议。 Windows 7 和 8 没有定义 TLS 协议,因此 VBA 使用 SSL 发送流量,然后由此类服务器 blocked/dropped。

您需要应用两步 patch/update 来解决此问题 windows 7,

步骤 1. 获取 Microsoft 更新: 下载相关的(32 位或 64 位的用户 Windows 版本) Microsoft Security Protocol Update 如果尚未安装,请安装。

步骤 2. 下载 Microsoft Easy Fix: 从以下位置下载 Microsoft“Easy Fix” Microsoft Support Article,并执行以将 TLS 1.1+ 设置为默认值。

来源:Update to enable TLS 1.1 and TLS 1.2 as default secure protocols in WinHTTP in Windows