delphi-2010 - WinHTTP - 与服务器的连接异常终止
问题描述
我导入 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 ),并出现错误“与服务器的连接异常终止”。
有没有我忘记的其他设置?
我正在使用德尔福 2010。
解决方案
大多数服务器已不再接受 SSL 传入流量,转而采用 TLS 协议。Windows 7 和 8 没有定义 TLS 协议,因此 VBA 使用 SSL 发送流量,然后被此类服务器阻止/丢弃。
您将需要应用两步补丁/更新来修复 Windows 7 的此问题,
步骤 1. 获取 Microsoft 更新: 下载相关(用户的 Windows 版本的 32 位或 64 位) Microsoft 安全协议更新并安装(如果尚未安装)。
步骤 2. 下载 Microsoft Easy Fix:从Microsoft Support Article 下载 Microsoft “Easy Fix” ,然后执行以将 TLS 1.1+ 设置为默认值。
推荐阅读
- reactjs - 如果另一个正在移出视图,模态不会移入视图
- javascript - Highcharts 系列大小有限制吗?
- java - 如何为 Angular 7 和 Java 之间的 Rest API 修复 415 Unsupported Media Type
- java - 本地证书 SSL。Java - 雄猫
- java - 提高图片上传质量
- c - 在 BLE 扫描仪应用程序中执行读取操作时获取垃圾值和实际数据
- c# - 模型构建器是线程安全的?
- javascript - jest.config.js 中的 `moduleNameMapper` 设置在 CircleCI 上不起作用
- spring-boot - 无法包含 spring-boot-starter-data-cassandra 依赖项
- c# - 在客户表身份服务器中添加值