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

问题描述 投票:1回答:1

我导入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),但在其他页面中不起作用(例如:https://sourceforge.net),错误“与服务器的连接异常终止”。

我忘了还有其他设置吗?

我正在使用Delphi 2010。

delphi-2010 winhttp
1个回答
1
投票

大多数服务器已经迁移而不接受SSL传入流量而支持TLS协议。 Windows 7和8没有定义TLS协议,因此VBA使用SSL发送流量,然后由此类服务器阻止/删除。

您将需要应用两步修补程序/更新来修复Windows 7,

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.