我导入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。
大多数服务器已经迁移而不接受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