Poco::Net

class HTTPSessionFactory

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

Description

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, getProxyConfig, proxyHost, proxyPassword, proxyPort, proxyUsername, registerProtocol, setProxy, setProxyConfig, setProxyCredentials, supportsProtocol, unregisterProtocol

Constructors

HTTPSessionFactory

HTTPSessionFactory();

Creates the HTTPSessionFactory.

HTTPSessionFactory

HTTPSessionFactory(
    const HTTPClientSession::ProxyConfig & proxyConfig
);

Creates the HTTPSessionFactory and sets the proxy configuration.

HTTPSessionFactory

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

Creates the HTTPSessionFactory and sets the proxy host and port.

Destructor

~HTTPSessionFactory

~HTTPSessionFactory();

Destroys the HTTPSessionFactory.

Member Functions

createClientSession

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.

getProxyConfig inline

const HTTPClientSession::ProxyConfig & getProxyConfig() const;

Returns the proxy configuration.

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.

registerProtocol

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.

setProxy

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

Sets the proxy host and port number.

setProxyConfig

void setProxyConfig(
    const HTTPClientSession::ProxyConfig & proxyConfig
);

Sets the proxy configuration.

setProxyCredentials

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

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

supportsProtocol

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

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

unregisterProtocol

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.