class HTTPSessionFactory

Library: Net
Package: HTTPClient
Header: Poco/Net/HTTPSessionFactory.h


A factory for HTTPClientSession objects.

Given a URI, this class creates a HTTPClientSession (for http) or a HTTPSClientSession (for https) for accessing the URI.

The actual work of creating the session is done by HTTPSessionInstantiator objects that must be registered with a HTTPSessionFactory.

Member Summary

Member Functions: createClientSession, defaultFactory, proxyHost, proxyPassword, proxyPort, proxyUsername, registerProtocol, setProxy, setProxyCredentials, supportsProtocol, unregisterProtocol




Creates the HTTPSessionFactory.


    const std::string & proxyHost,
    Poco::UInt16 proxyPort

Creates the HTTPSessionFactory and sets the proxy host and port.




Destroys the HTTPSessionFactory.

Member Functions


HTTPClientSession * createClientSession(
    const Poco::URI & uri

Creates a client session for the given uri scheme. Throws exception if no factory is registered for the given scheme

defaultFactory static

static HTTPSessionFactory & defaultFactory();

Returns the default HTTPSessionFactory.

proxyHost inline

const std::string & proxyHost() const;

Returns the proxy host, if one has been set, or an empty string otherwise.

proxyPassword inline

const std::string & proxyPassword() const;

Returns the password for proxy authorization.

proxyPort inline

Poco::UInt16 proxyPort() const;

Returns the proxy port number, if one has been set, or zero otherwise.

proxyUsername inline

const std::string & proxyUsername() const;

Returns the username for proxy authorization.


void registerProtocol(
    const std::string & protocol,
    HTTPSessionInstantiator * pSessionInstantiator

Registers the session instantiator for the given protocol. The factory takes ownership of the SessionInstantiator.

A protocol can be registered more than once. However, only the instantiator that has been registered first is used. Also, for each call to registerProtocol(), a corresponding call to unregisterProtocol() must be made.


void setProxy(
    const std::string & proxyHost,
    Poco::UInt16 proxyPort

Sets the proxy host and port number.


void setProxyCredentials(
    const std::string & username,
    const std::string & password

Sets the username and password for proxy authorization (Basic auth only).


bool supportsProtocol(
    const std::string & protocol

Returns true if a session instantiator for the given protocol has been registered.


void unregisterProtocol(
    const std::string & protocol

Removes the registration of a protocol.

Throws a NotFoundException if no instantiator has been registered for the given protocol.