c++ - 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),那么一切正常。怎么了?
解决方案
可能服务器正在使用 TLS 1.2 256 位加密。尝试安装 KB968730 和 KB3055973 更新,但它们仅添加了对 TLS 1.2 的部分支持。
Windows XP 已死,这是事实。现在它不是一个与互联网兼容的操作系统。
推荐阅读
- python-3.x - 线程脚本不会终止
- java - 在spring boot中保存不同名称的文件
- unity3d - 共振音频源 - Unity3D 碰撞
- javascript - 重构一个非常大的开关
- angular - Angular 6 & Electron:使用模拟类进行单元测试并扩展真实类不起作用
- javascript - 从 JS 调用 Firefox 辅助函数
- java - org.apache.velocity.app.VelocityEngine 上的 java.lang.VerifyError
- macros - 数据步骤中宏变量的解析
- java-bytecode-asm - ASM 重复方法
- javascript - 使用 JQuery 动态添加表行设置小行高