4

设置 HTTPSessionFactory 以同时处理 HTTP 和 HTTPS 的最佳、最简单的方法是什么?我知道我需要使用 HTTPSessionInstantiators,但我真的可以使用一个简短而甜蜜的例子。谢谢。

4

1 回答 1

3

您需要注册“http”和“https”协议。

为了处理“https”,您还需要使用证书和上下文配置 SSLManager,这是一段示例代码:

//register http and https
HTTPSessionFactory::defaultFactory().registerProtocol("http", new HTTPSessionInstantiator);
HTTPSessionFactory::defaultFactory().registerProtocol("https", new HTTPSSessionInstantiator);
//prepare for SSLManager
SharedPtr ptrCert = new AcceptCertificateHandler(false);
const Poco::Net::Context::Ptr context = new Context(Context::CLIENT_USE, "", "", "", Context::VERIFY_NONE, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
SSLManager::instance().initializeClient(0, ptrCert, context);
// now you have the HTTP(S)ClientSession
HTTPClientSession *session = HTTPSessionFactory::defaultFactory().createClientSession(uri);
于 2012-10-02T08:27:32.533 回答