首页 > 解决方案 > Windows XP 上的 WinHttpSendRequest 和 HTTPS

问题描述

操作系统:Windows XP SP3。应用程序应通过https协议从网站下载图片。因此,WinHttpSendRequest返回错误 -2146893018。这是代码片段:

hRequest = WinHttpOpenRequest(hConnect, L"GET", Path, Protocol, 0, 0, WINHTTP_FLAG_SECURE);

    if(hRequest){
        bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0,
                                      WINHTTP_NO_REQUEST_DATA, 0, 0, 0);
    ...
    }

此问题仅在 WinXP 上。在 Windows 7 上 - 一切正常。

但是,如果尝试通过http协议从另一个网站下载另一个图像(将 WINHTTP_FLAG_SECURE 替换为 0),那么一切正常。怎么了?

标签: c++windowswindows-xpwinhttp

解决方案


可能服务器正在使用 TLS 1.2 256 位加密。尝试安装 KB968730 和 KB3055973 更新,但它们仅添加了对 TLS 1.2 的部分支持。

Windows XP 已死,这是事实。现在它不是一个与互联网兼容的操作系统。


推荐阅读