# Poco::Net

# class HTTPRequest

Library: Net
Package: HTTP
Header: Poco/Net/HTTPRequest.h

## Description

This class encapsulates an HTTP request message.

In addition to the properties common to all HTTP messages, a HTTP request has a method (e.g. GET, HEAD, POST, etc.) and a request URI.

## Inheritance

Direct Base Classes: HTTPMessage

All Base Classes: HTTPMessage, MessageHeader, NameValueCollection

Known Derived Classes: HTTPServerRequest, HTTPServerRequestImpl

## Member Summary

Member Functions: getCookies, getCredentials, getExpectContinue, getHost, getMethod, getProxyCredentials, getURI, hasCredentials, hasProxyCredentials, operator =, read, removeCredentials, removeProxyCredentials, setCookies, setCredentials, setExpectContinue, setHost, setMethod, setProxyCredentials, setURI, write

Inherited Functions: add, begin, clear, decodeRFC2047, decodeWord, empty, end, erase, find, get, getAutoDecode, getChunkedTransferEncoding, getContentLength, getContentLength64, getContentType, getDecoded, getFieldLimit, getKeepAlive, getNameLengthLimit, getTransferEncoding, getValueLengthLimit, getVersion, has, hasContentLength, hasToken, operator =, operator [], quote, read, secureClear, secureErase, set, setAutoDecode, setChunkedTransferEncoding, setContentLength, setContentLength64, setContentType, setFieldLimit, setKeepAlive, setNameLengthLimit, setTransferEncoding, setValueLengthLimit, setVersion, size, splitElements, splitParameters, swap, write

## Constructors

### HTTPRequest

HTTPRequest();

Creates a GET / HTTP/1.0 HTTP request.

### HTTPRequest

explicit HTTPRequest(
const std::string & version
);

Creates a GET / HTTP/1.x request with the given version (HTTP/1.0 or HTTP/1.1).

### HTTPRequest

HTTPRequest(
const HTTPRequest & other
);

Creates a HTTP request by copying another one.

### HTTPRequest

HTTPRequest(
const std::string & method,
const std::string & uri
);

Creates a HTTP/1.0 request with the given method and URI.

### HTTPRequest

HTTPRequest(
const std::string & method,
const std::string & uri,
const std::string & version
);

Creates a HTTP request with the given method, URI and version.

## Destructor

### ~HTTPRequest

virtual ~HTTPRequest();

Destroys the HTTPRequest.

## Member Functions

### getCookies

void getCookies(
NameValueCollection & cookies
) const;

Fills cookies with the cookies extracted from the Cookie headers in the request.

### getCredentials

void getCredentials(
std::string & scheme,
std::string & authInfo
) const;

Returns the authentication scheme and additional authentication information contained in this request.

Throws a NotAuthenticatedException if no authentication information is contained in the request.

### getExpectContinue

bool getExpectContinue() const;

Returns true if the request contains an "Expect: 100-continue" header.

### getHost

const std::string & getHost() const;

Returns the value of the Host header field.

Throws a NotFoundException if the request does not have a Host header field.

### getMethod

const std::string & getMethod() const;

Returns the method.

### getProxyCredentials

void getProxyCredentials(
std::string & scheme,
std::string & authInfo
) const;

Returns the proxy authentication scheme and additional proxy authentication information contained in this request.

Throws a NotAuthenticatedException if no proxy authentication information is contained in the request.

### getURI

const std::string & getURI() const;

Returns the request URI.

### hasCredentials

bool hasCredentials() const;

Returns true iff the request contains authentication information in the form of an Authorization header.

### hasProxyCredentials

bool hasProxyCredentials() const;

Returns true iff the request contains proxy authentication information in the form of an Proxy-Authorization header.

### operator =

HTTPRequest & operator = (
const HTTPRequest & param449
);

Assignment operator.

### read

void read(
std::istream & istr
);

Reads the HTTP request from the given input stream.

See also: Poco::Net::MessageHeader::read()

### removeCredentials

void removeCredentials();

Removes any credentials from the request.

### removeProxyCredentials

void removeProxyCredentials();

Removes any proxy credentials from the request.

### setCookies

void setCookies(
const NameValueCollection & cookies
);

Adds a Cookie header with the names and values from cookies.

### setCredentials

void setCredentials(
const std::string & scheme,
const std::string & authInfo
);

Sets the authentication scheme and information for this request.

### setExpectContinue

void setExpectContinue(
bool expectContinue
);

Adds a "Expect: 100-continue" header to the request if expectContinue is true, otherwise removes the Expect header.

### setHost

void setHost(
const std::string & host
);

Sets the value of the Host header field.

### setHost

void setHost(
const std::string & host,
Poco::UInt16 port
);

Sets the value of the Host header field.

If the given port number is a non-standard port number (other than 80 or 443), it is included in the Host header field.

### setMethod

void setMethod(
const std::string & method
);

Sets the method.

### setProxyCredentials

void setProxyCredentials(
const std::string & scheme,
const std::string & authInfo
);

Sets the proxy authentication scheme and information for this request.

### setURI

void setURI(
const std::string & uri
);

Sets the request URI.

### write

void write(
std::ostream & ostr
) const;

Writes the HTTP request to the given output stream.

See also: Poco::Net::MessageHeader::write()

### getCredentials

void getCredentials(
const std::string & header,
std::string & scheme,
std::string & authInfo
) const;

Returns the authentication scheme and additional authentication information contained in the given header of request.

Throws a NotAuthenticatedException if no authentication information is contained in the request.

### setCredentials

void setCredentials(
const std::string & header,
const std::string & scheme,
const std::string & authInfo
);

Writes the authentication scheme and information for this request to the given header.

## Variables

### AUTHORIZATION

static const std::string AUTHORIZATION;

### COOKIE

static const std::string COOKIE;

### EXPECT

static const std::string EXPECT;

### HOST

static const std::string HOST;

### HTTP_CONNECT

static const std::string HTTP_CONNECT;

### HTTP_DELETE

static const std::string HTTP_DELETE;

### HTTP_GET

static const std::string HTTP_GET;

### HTTP_HEAD

static const std::string HTTP_HEAD;

### HTTP_OPTIONS

static const std::string HTTP_OPTIONS;

### HTTP_PATCH

static const std::string HTTP_PATCH;

### HTTP_POST

static const std::string HTTP_POST;

### HTTP_PUT

static const std::string HTTP_PUT;

### HTTP_TRACE

static const std::string HTTP_TRACE;

### PROXY_AUTHORIZATION

static const std::string PROXY_AUTHORIZATION;

### UPGRADE

static const std::string UPGRADE;