PL::HttpClient class

class HttpClient : public PL::Lockable

HTTP/HTTPS client class.

Public Functions

HttpClient(const std::string &hostname, std::shared_ptr<Buffer> headerBuffer)

Creates an HTTP client.

Parameters:
  • hostname – hostname

  • headerBuffer – header buffer

HttpClient(const std::string &hostname, size_t headerBufferSize = defaultHeaderBufferSize)

Creates an HTTP client.

Parameters:
  • hostname – hostname

  • headerBufferSize – header buffer size

HttpClient(const std::string &hostname, const char *serverCertificate, std::shared_ptr<Buffer> headerBuffer)

Creates an HTTPS client.

Parameters:
  • hostname – hostname

  • serverCertificate – server certificate

  • headerBuffer – header buffer

HttpClient(const std::string &hostname, const char *serverCertificate, size_t headerBufferSize = defaultHeaderBufferSize)

Creates an HTTPS client.

Parameters:
  • hostname – hostname

  • serverCertificate – server certificate

  • headerBufferSize – header buffer size

HttpClient(const std::string &hostname, esp_err_t (*crt_bundle_attach)(void *conf), std::shared_ptr<Buffer> headerBuffer)

Creates an HTTPS client.

Parameters:
  • hostname – hostname

  • crt_bundle_attach – function pointer to esp_crt_bundle_attach

  • headerBuffer – header buffer

HttpClient(const std::string &hostname, esp_err_t (*crt_bundle_attach)(void *conf), size_t headerBufferSize = defaultHeaderBufferSize)

Creates an HTTPS client.

Parameters:
  • hostname – hostname

  • crt_bundle_attach – function pointer to esp_crt_bundle_attach

  • headerBufferSize – header buffer size

virtual esp_err_t Lock(TickType_t timeout = portMAX_DELAY) override

Locks the object.

Parameters:

timeout – timeout in FreeRTOS ticks

Returns:

error code

virtual esp_err_t Unlock() override

Unlocks the object.

Returns:

error code

esp_err_t Initialize()

Initializes the client.

Returns:

error code

esp_err_t WriteRequestHeaders(HttpMethod method, const std::string &uri, size_t bodySize)

Writes the request headers.

Parameters:
  • method – HTTP method

  • uri – URI

  • bodySize – body size

Returns:

error code

esp_err_t WriteRequestBody(const void *src, size_t size)

Writes the request body.

Parameters:
  • src – source

  • size – number of bytes to write

Returns:

error code

esp_err_t WriteRequest(HttpMethod method, const std::string &uri, const std::string &body)

Writes the request.

Parameters:
  • method – HTTP method

  • uri – URI

  • body – body

Returns:

error code

esp_err_t WriteRequest(HttpMethod method, const std::string &uri)

Writes the request with an empty body.

Parameters:
  • method – HTTP method

  • uri – URI

Returns:

esp_err_t ReadResponseHeaders(ushort &statusCode, size_t *bodySize)

Reads the response headers.

Parameters:
  • statusCode – status code

  • bodySize – body size

Returns:

error code

esp_err_t ReadResponseBody(void *dest, size_t size)

Reads the response body.

Parameters:
  • dest – destination (can be NULL)

  • size – number of bytes to read

Returns:

error code

esp_err_t Disconnect()

Disconnects from the server.

Returns:

error code

uint16_t GetPort()

Gets the remote port.

Returns:

port

esp_err_t SetPort(uint16_t port)

Sets the remote port.

Parameters:

port – port

Returns:

error code

TickType_t GetReadTimeout()

Gets the read operation timeout.

Returns:

timeout in FreeRTOS ticks

esp_err_t SetReadTimeout(TickType_t timeout)

Sets the read operation timeout.

Parameters:

timeout – timeout in FreeRTOS ticks

Returns:

error code

esp_err_t SetAuthScheme(HttpAuthScheme scheme)

Sets the request authentication scheme.

Parameters:

scheme – authentication scheme

Returns:

error code

esp_err_t SetAuthCredentials(const std::string &username, const std::string &password)

Sets the request authentication credentials.

Parameters:
  • username – username

  • password – password

Returns:

error code

esp_err_t SetRequestHeader(const std::string &name, const std::string &value)

Sets the request header.

Parameters:
  • name – header name

  • value – header value

Returns:

error code

esp_err_t DeleteRequestHeader(const std::string &name)

Deletes the request header.

Parameters:

name – header name

Returns:

error code

const char *GetResponseHeader(const std::string &name)

Gets the response header value.

Parameters:

name – header name

Returns:

header value (NULL if no such header in the request)

Public Static Attributes

static const uint16_t defaultHttpPort = 80

Default HTTP port.

static const uint16_t defaultHttpsPort = 443

Default HTTPS port.

static const TickType_t defaultReadTimeout = 5000 / portTICK_PERIOD_MS

Default read operation timeout in FreeRTOS ticks.

static const size_t defaultHeaderBufferSize = 1024

Default header buffer size.