#include <HttpRequest.h>

Collaboration diagram for HttpRequest:
[legend]

Public Types

using SslInitDelegate = Delegate< void(Ssl::Session &session, HttpRequest &request)>
 Callback delegate type used to initialise an SSL session for a given request. More...
 

Public Member Functions

 HttpRequest ()
 
 HttpRequest (const Url &uri)
 
 HttpRequest (const HttpRequest &value)
 Copy constructor. More...
 
HttpRequestclone () const
 Clone this request into a new object using the copy constructor. More...
 
HttpRequestoperator= (const HttpRequest &rhs)
 
 ~HttpRequest ()
 
HttpRequestsetURL (const Url &uri)
 
HttpRequestsetMethod (HttpMethod method)
 
HttpRequestsetHeaders (const HttpHeaders &headers)
 
HttpRequestsetHeader (const String &name, const String &value)
 
HttpRequestsetPostParameters (const HttpParams &params)
 
HttpRequestsetPostParameter (const String &name, const String &value)
 
HttpRequestsetFile (const String &formElementName, ReadWriteStream *stream)
 Sets a file to be sent. More...
 
HttpRequestsetAuth (AuthAdapter *adapter)
 
const StringgetHeader (const String &name)
 
const StringgetPostParameter (const String &name)
 
String getPath ()
 
String getQueryParameter (const String &parameterName, const String &defaultValue=nullptr) const
 
String getBody ()
 Returns content from the body stream as string. More...
 
IDataSourceStreamgetBodyStream ()
 Return the current body stream. More...
 
HttpRequestsetBody (const String &body)
 
HttpRequestsetBody (IDataSourceStream *stream)
 
HttpRequestsetBody (const uint8_t *rawData, size_t length)
 
HttpRequestsetResponseStream (ReadWriteStream *stream)
 Instead of storing the response body we can set a stream that will take care to process it. More...
 
ReadWriteStreamgetResponseStream ()
 Get the response stream (if any) More...
 
HttpRequestonHeadersComplete (RequestHeadersCompletedDelegate delegateFunction)
 
HttpRequestonBody (RequestBodyDelegate delegateFunction)
 
HttpRequestonRequestComplete (RequestCompletedDelegate delegateFunction)
 
void reset ()
 Clear buffers and reset to default state in preparation for another request. More...
 
HttpRequestonSslInit (SslInitDelegate delegate)
 To customise SSL session options, provide a callback. More...
 
String toString ()
 Tries to present a readable version of the current request values. More...
 

Public Attributes

Url uri
 
HttpMethod method = HTTP_GET
 
HttpHeaders headers
 
HttpParams postParams
 
HttpFiles files
 
int retries = 0
 
void * args = nullptr
 

Protected Attributes

RequestHeadersCompletedDelegate headersCompletedDelegate
 
RequestBodyDelegate requestBodyDelegate
 
RequestCompletedDelegate requestCompletedDelegate
 
SslInitDelegate sslInitDelegate
 
IDataSourceStreambodyStream = nullptr
 
ReadWriteStreamresponseStream = nullptr
 User-requested stream to store response. More...
 
AuthAdapterauth = nullptr
 

Friends

class HttpClientConnection
 
class HttpServerConnection
 

Member Typedef Documentation

◆ SslInitDelegate

Callback delegate type used to initialise an SSL session for a given request.

Constructor & Destructor Documentation

◆ HttpRequest() [1/3]

HttpRequest::HttpRequest ( )
inline

◆ HttpRequest() [2/3]

HttpRequest::HttpRequest ( const Url uri)
inline

◆ HttpRequest() [3/3]

HttpRequest::HttpRequest ( const HttpRequest value)
inline

Copy constructor.

Note
Internal streams are not copied so these must be dealt with afterwards

◆ ~HttpRequest()

HttpRequest::~HttpRequest ( )
inline

Member Function Documentation

◆ clone()

HttpRequest* HttpRequest::clone ( ) const
inline

Clone this request into a new object using the copy constructor.

Return values
HttpRequest*The new request object
See also
HttpRequest(const HttpRequest& value)

◆ getBody()

String HttpRequest::getBody ( )

Returns content from the body stream as string.

Return values
String
Note
This method consumes the stream and it will work only with text data. If you have binary data in the stream use getBodyStream instead.
Allocation of String doubles amount of memory required, so use with care.

◆ getBodyStream()

IDataSourceStream* HttpRequest::getBodyStream ( )
inline

Return the current body stream.

Return values
IDataSourceStream*
Note
may return null

◆ getHeader()

const String& HttpRequest::getHeader ( const String name)
inline

◆ getPath()

String HttpRequest::getPath ( )
inline
Deprecated:
Use uri.Path instead

◆ getPostParameter()

const String& HttpRequest::getPostParameter ( const String name)
inline

◆ getQueryParameter()

String HttpRequest::getQueryParameter ( const String parameterName,
const String defaultValue = nullptr 
) const
inline

◆ getResponseStream()

ReadWriteStream* HttpRequest::getResponseStream ( )
inline

Get the response stream (if any)

◆ onBody()

HttpRequest* HttpRequest::onBody ( RequestBodyDelegate  delegateFunction)
inline

◆ onHeadersComplete()

HttpRequest* HttpRequest::onHeadersComplete ( RequestHeadersCompletedDelegate  delegateFunction)
inline

◆ onRequestComplete()

HttpRequest* HttpRequest::onRequestComplete ( RequestCompletedDelegate  delegateFunction)
inline

◆ onSslInit()

HttpRequest* HttpRequest::onSslInit ( SslInitDelegate  delegate)
inline

To customise SSL session options, provide a callback.

Parameters
delegateInvoked before creating SSL connection

◆ operator=()

HttpRequest& HttpRequest::operator= ( const HttpRequest rhs)
inline
Deprecated:
Please use clone() instead

◆ reset()

void HttpRequest::reset ( )

Clear buffers and reset to default state in preparation for another request.

◆ setAuth()

HttpRequest* HttpRequest::setAuth ( AuthAdapter adapter)
inline

◆ setBody() [1/3]

HttpRequest* HttpRequest::setBody ( const String body)
inline

◆ setBody() [2/3]

HttpRequest* HttpRequest::setBody ( IDataSourceStream stream)

◆ setBody() [3/3]

HttpRequest* HttpRequest::setBody ( const uint8_t *  rawData,
size_t  length 
)

◆ setFile()

HttpRequest* HttpRequest::setFile ( const String formElementName,
ReadWriteStream stream 
)
inline

Sets a file to be sent.

Parameters
formElementNameThe name of the element in the form
streamPointer to the stream (doesn't have to be a FileStream)
Return values
HttpRequest*

◆ setHeader()

HttpRequest* HttpRequest::setHeader ( const String name,
const String value 
)
inline

◆ setHeaders()

HttpRequest* HttpRequest::setHeaders ( const HttpHeaders headers)
inline

◆ setMethod()

HttpRequest* HttpRequest::setMethod ( HttpMethod  method)
inline

◆ setPostParameter()

HttpRequest* HttpRequest::setPostParameter ( const String name,
const String value 
)
inline

◆ setPostParameters()

HttpRequest* HttpRequest::setPostParameters ( const HttpParams params)
inline
Deprecated:
Set postParams directly, i.e. request.postParams = params

◆ setResponseStream()

HttpRequest* HttpRequest::setResponseStream ( ReadWriteStream stream)

Instead of storing the response body we can set a stream that will take care to process it.

Parameters
stream
Return values
HttpRequest*
Note
The response to this request will be stored in the user-provided stream.

◆ setURL()

HttpRequest* HttpRequest::setURL ( const Url uri)
inline

◆ toString()

String HttpRequest::toString ( )

Tries to present a readable version of the current request values.

Return values
String

Friends And Related Function Documentation

◆ HttpClientConnection

friend class HttpClientConnection
friend

◆ HttpServerConnection

friend class HttpServerConnection
friend

Member Data Documentation

◆ args

void* HttpRequest::args = nullptr

◆ auth

AuthAdapter* HttpRequest::auth = nullptr
protected

◆ bodyStream

IDataSourceStream* HttpRequest::bodyStream = nullptr
protected

◆ files

HttpFiles HttpRequest::files

◆ headers

HttpHeaders HttpRequest::headers

◆ headersCompletedDelegate

RequestHeadersCompletedDelegate HttpRequest::headersCompletedDelegate
protected

◆ method

HttpMethod HttpRequest::method = HTTP_GET

◆ postParams

HttpParams HttpRequest::postParams

◆ requestBodyDelegate

RequestBodyDelegate HttpRequest::requestBodyDelegate
protected

◆ requestCompletedDelegate

RequestCompletedDelegate HttpRequest::requestCompletedDelegate
protected

◆ responseStream

ReadWriteStream* HttpRequest::responseStream = nullptr
protected

User-requested stream to store response.

◆ retries

int HttpRequest::retries = 0

◆ sslInitDelegate

SslInitDelegate HttpRequest::sslInitDelegate
protected

◆ uri

Url HttpRequest::uri

The documentation for this class was generated from the following file: