class Poco::Net::HTTPSessionFactory

Overview

A factory for HTTPClientSession objects. Moreā€¦

#include <HTTPSessionFactory.h>

class HTTPSessionFactory
{
public:
    // structs

    struct InstantiatorInfo;

    // construction

    HTTPSessionFactory();

    HTTPSessionFactory(
        const std::string& proxyHost,
        Poco::UInt16 proxyPort
        );

    // methods

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

    void
    unregisterProtocol(const std::string& protocol);

    bool
    supportsProtocol(const std::string& protocol);

    HTTPClientSession*
    createClientSession(const Poco::URI& uri);

    const std::string&
    proxyHost() const;

    Poco::UInt16
    proxyPort() const;

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

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

    const std::string&
    proxyUsername() const;

    const std::string&
    proxyPassword() const;

    static
    HTTPSessionFactory&
    defaultFactory();
};

Detailed Documentation

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.

Construction

HTTPSessionFactory()

Creates the HTTPSessionFactory.

HTTPSessionFactory(
    const std::string& proxyHost,
    Poco::UInt16 proxyPort
    )

Creates the HTTPSessionFactory and sets the proxy host and port.

Methods

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
unregisterProtocol(const std::string& protocol)

Removes the registration of a protocol.

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

bool
supportsProtocol(const std::string& protocol)

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

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.

const std::string&
proxyHost() const

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

Poco::UInt16
proxyPort() const

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

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).

const std::string&
proxyUsername() const

Returns the username for proxy authorization.

const std::string&
proxyPassword() const

Returns the password for proxy authorization.

static
HTTPSessionFactory&
defaultFactory()

Returns the default HTTPSessionFactory.