WinHttp 设定使用TLSV 1.3
时间: 2023-07-22 08:00:04 浏览: 46
您可以使用 WinHttpSetOption 函数来设置 WinHTTP 使用 TLSv1.3。以下是一个示例代码:
```cpp
#include <winhttp.h>
#pragma comment(lib, "winhttp.lib")
int main() {
// 初始化 WinHTTP
HINTERNET hSession = WinHttpOpen(L"WinHTTP Example/1.0", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
if (hSession) {
// 创建请求句柄
HINTERNET hConnect = WinHttpOpenRequest(hSession, L"GET", L"https://www.example.com", NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE);
if (hConnect) {
// 设置 TLSv1.3
DWORD dwProtocols = WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3;
WinHttpSetOption(hConnect, WINHTTP_OPTION_SECURE_PROTOCOLS, &dwProtocols, sizeof(dwProtocols));
// 发送请求
if (WinHttpSendRequest(hConnect, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0)) {
// ...
}
// 清理资源
WinHttpCloseHandle(hConnect);
}
WinHttpCloseHandle(hSession);
}
return 0;
}
```
请注意,上述示例代码仅设置了请求使用 TLSv1.3,具体支持的协议版本取决于系统和服务器的支持情况。此外,还可以使用 `WINHTTP_FLAG_SECURE_PROTOCOL_ALL` 来启用所有可用的安全协议版本。