C++ WinHttpSendRequest:2148074273缓存不足
我正在使用cpprest sdk构建一个Rest客户端,以便与web服务通信。问题是,每隔一段时间,在发送多个成功请求(大约50个)后,我就会收到一个异常: WinHttpSendRequest:2148074273函数中的缓存不足 或者有时: 错误\u WINHTTP\u安全\u失败(12175) 我试图在cpprest sdk中查找缓存选项,但没有找到任何内容。由于在我的任务上调用C++ WinHttpSendRequest:2148074273缓存不足,c++,windows,winapi,cpprest-sdk,C++,Windows,Winapi,Cpprest Sdk,我正在使用cpprest sdk构建一个Rest客户端,以便与web服务通信。问题是,每隔一段时间,在发送多个成功请求(大约50个)后,我就会收到一个异常: WinHttpSendRequest:2148074273函数中的缓存不足 或者有时: 错误\u WINHTTP\u安全\u失败(12175) 我试图在cpprest sdk中查找缓存选项,但没有找到任何内容。由于在我的任务上调用.wait()时,异常发生在cpprest sdk内部,因此我不确定是否可以使用WINHTTP\u STATUS
.wait()
时,异常发生在cpprest sdk内部,因此我不确定是否可以使用WINHTTP\u STATUS\u回调来检查有关此错误的更多详细信息。如何深入调查以找到此错误的原因
这是我的休息要求:
void MyRestClient::PostKeys(const std::string & sKek, const std::string & sKid, const std::string & sCustomerAuthenticator) {
uri_builder oBuilder(U("/keys?customerAuthenticator=") + to_string_t(sCustomerAuthenticator));
oBuilder.append_query(KEK, to_string_t(sKek));
json::value oBody;
oBody[KID] = json::value::string(to_string_t(sKid));
web::http::http_request oRequest;
oRequest.set_method(methods::POST);
oRequest.set_request_uri(oBuilder.to_uri());
oRequest.set_body(oBody);
m_oCurrentTask = oClient.request(oRequest).then([this](http_response oResponse) {
OnPostResponse(oResponse);
});
}
根据(第四个项目符号),Post请求不应该被缓存,所以我不明白为什么会出现第一个异常。我还尝试禁用Https缓存,正如链接中的第6个项目符号所建议的那样,但这并没有改变任何事情
有没有人经历过类似的事情,或者对可能发生的事情有什么见解?或者这是一种正常的行为,我应该在这些异常发生时重试我的请求吗?您的Web服务是否将TLS与Diffie-Hellman密钥交换一起使用?如果是,您可能在SChannel(Windows的SSL实现)中看到一个bug,请参阅。不幸的是,唯一可用的修复程序是将客户端运行的Windows版本更新为最新版本的Windows 10。可能与