【发布时间】:2018-06-19 10:31:52
【问题描述】:
我已经声明了一个 Input_output_class() 类的静态成员变量
Session::Ptr c_pSecureSession=nullptr;
对于每个请求 GET/PUT/DELETE/HEAD,我必须创建一个 Input_output_class() 类的对象。在类的成员函数中 我正在创建一个会话如下 函数获取()
{
if(c_pSecureSession)
{
s_sess = HTTPSClientSession(host, port, pContext, c_pSecureSession);
}
else
{
s_sess = HTTPSClientSession(host, port, pContext);
}
//pContext is a defaultClientContext from singleton Poco::Net::SSLManager
s_sess->sendRequest(request);
c_pSecureSession = s_sess->sslSession();
cout <<" c_pSecureSession " << c_pSecureSession <<endl;
//Handle response below
}
SSL MANAGER 单例初始化代码 ——————
{
Poco::SharedPtr<Poco::Net::InvalidCertificateHandler> ptrHandler = new Poco::Net::AcceptCertificateHandler(false);
Poco::Net::Context::Ptr ptrContext = new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "");
ptrContext->enableSessionCache(true);
Poco::Net::SSLManager::instance().initializeClient(0, ptrHandler, ptrContext);
}
我看到该会话没有被重用,并且我正在为每个请求获取一个新的 c_pSecureSession 指针。
你能帮我如何使用会话缓存..
谢谢。
【问题讨论】:
标签: c++11 https openssl poco-libraries