Provides http base used for client and server connections. More...
#include <HttpConnection.h>
Public Member Functions | |
HttpConnection (http_parser_type type, bool autoDestruct=false) | |
HttpConnection (tcp_pcb *connection, http_parser_type type) | |
virtual void | reset () |
virtual void | cleanup () |
virtual void | setDefaultParser () |
virtual bool | send (HttpRequest *request) |
bool | isActive () |
virtual HttpRequest * | getRequest ()=0 |
Returns pointer to the current request. More... | |
HttpResponse * | getResponse () |
Returns pointer to the current response. More... | |
int | getResponseCode () const |
String | getResponseHeader (const String &headerName, const String &defaultValue=nullptr) const |
HttpHeaders & | getResponseHeaders () |
DateTime | getLastModifiedDate () const |
DateTime | getServerDate () const |
String | getResponseString () |
bool | connect (const String &server, int port, bool useSsl=false) override |
bool | connect (IpAddress addr, uint16_t port, bool useSsl=false) override |
void | close () override |
void | setReceiveDelegate (TcpClientDataDelegate receiveCb=nullptr) |
Set or clear the callback for received data. More... | |
void | setCompleteDelegate (TcpClientCompleteDelegate completeCb=nullptr) |
Set or clear the callback for connection close. More... | |
bool | send (const char *data, uint16_t len, bool forceCloseAfterSent=false) |
bool | sendString (const String &data, bool forceCloseAfterSent=false) |
bool | isProcessing () |
TcpClientState | getConnectionState () |
void | setCloseAfterSent (bool ignoreIncomingData=false) |
int | writeString (const char *data, uint8_t apiflags=TCP_WRITE_FLAG_COPY) |
int | writeString (const String &data, uint8_t apiflags=TCP_WRITE_FLAG_COPY) |
virtual int | write (const char *data, int len, uint8_t apiflags=TCP_WRITE_FLAG_COPY) |
Base write operation. More... | |
int | write (IDataSourceStream *stream) |
uint16_t | getAvailableWriteSize () |
void | flush () |
void | setTimeOut (uint16_t waitTimeOut) |
IpAddress | getRemoteIp () const |
uint16_t | getRemotePort () const |
void | setDestroyedDelegate (TcpConnectionDestroyedDelegate destroyedDelegate) |
Sets a callback to be called when the object instance is destroyed. More... | |
void | setSslInitHandler (Ssl::Session::InitDelegate handler) |
Set the SSL session initialisation callback. More... | |
bool | setSslConnection (Ssl::Connection *connection) |
Ssl::Session * | getSsl () |
Get a pointer to the current SSL session object. More... | |
Protected Member Functions | |
void | resetHeaders () |
Called after all headers have been received and processed. More... | |
virtual void | init (http_parser_type type) |
Initializes the http parser for a specific type of HTTP message. More... | |
virtual int | onMessageBegin (http_parser *parser)=0 |
Called when a new incoming data is beginning to come. More... | |
virtual int | onPath (const Url &uri) |
Called when the URL path is known. More... | |
virtual int | onHeadersComplete (const HttpHeaders &headers)=0 |
Called when all headers are received. More... | |
virtual int | onStatus (http_parser *parser) |
virtual int | onChunkHeader (http_parser *parser) |
virtual int | onChunkComplete (http_parser *parser) |
virtual int | onBody (const char *at, size_t length)=0 |
Called when a piece of body data is received. More... | |
virtual int | onMessageComplete (http_parser *parser)=0 |
Called when the incoming data is complete. More... | |
virtual bool | onProtocolUpgrade (http_parser *parser) |
Called when the HTTP protocol should be upgraded. More... | |
virtual bool | onHttpError (http_errno error) |
Called when there was an error. More... | |
virtual bool | onTcpReceive (TcpClient &client, char *data, int size) |
void | onError (err_t err) override |
err_t | onConnected (err_t err) override |
err_t | onReceive (pbuf *buf) override |
err_t | onSent (uint16_t len) override |
void | onReadyToSendData (TcpConnectionEvent sourceEvent) override |
virtual void | onFinished (TcpClientState finishState) |
void | pushAsyncPart () |
void | freeStreams () |
void | setBuffer (ReadWriteStream *stream) |
void | initialize (tcp_pcb *pcb) |
bool | internalConnect (IpAddress addr, uint16_t port) |
bool | sslCreateSession () |
virtual void | sslInitSession (Ssl::Session &session) |
Override in inherited classes to perform custom session initialisation. More... | |
virtual err_t | onPoll () |
void | trySend (TcpConnectionEvent event) |
err_t | internalOnConnected (err_t err) |
err_t | internalOnReceive (pbuf *p, err_t err) |
err_t | internalOnSent (uint16_t len) |
err_t | internalOnPoll () |
void | internalOnError (err_t err) |
void | internalOnDnsResponse (const char *name, LWIP_IP_ADDR_T *ipaddr, int port) |
Protected Attributes | |
http_parser | parser |
HttpHeaderBuilder | header |
Header construction. More... | |
HttpHeaders | incomingHeaders |
Full set of incoming headers. More... | |
HttpConnectionState | state = eHCS_Ready |
HttpResponse | response |
ReadWriteStream * | buffer = nullptr |
Used internally to buffer arbitrary data via send() methods. More... | |
IDataSourceStream * | stream = nullptr |
The currently active stream being sent. More... | |
tcp_pcb * | tcp = nullptr |
uint16_t | sleep = 0 |
uint16_t | timeOut = USHRT_MAX |
By default a TCP connection does not have a time out. More... | |
bool | canSend = true |
bool | autoSelfDestruct = true |
Ssl::Session * | ssl = nullptr |
Ssl::Session::InitDelegate | sslInit |
bool | useSsl = false |
Static Protected Attributes | |
static const http_parser_settings | parserSettings |
Callback table for parser. More... | |
Detailed Description
Provides http base used for client and server connections.
Constructor & Destructor Documentation
◆ HttpConnection() [1/2]
|
inline |
◆ HttpConnection() [2/2]
|
inline |
Member Function Documentation
◆ cleanup()
|
inlinevirtual |
Reimplemented in HttpClientConnection.
◆ close()
|
overridevirtualinherited |
Reimplemented from TcpConnection.
◆ connect() [1/2]
|
overridevirtualinherited |
Reimplemented from TcpConnection.
◆ connect() [2/2]
|
overridevirtualinherited |
Reimplemented from TcpConnection.
◆ flush()
|
inherited |
◆ freeStreams()
|
protectedinherited |
◆ getAvailableWriteSize()
|
inlineinherited |
◆ getConnectionState()
|
inlineinherited |
◆ getLastModifiedDate()
|
inline |
- Deprecated:
- Use
getResponse()->headers.getLastModifiedDate()
instead
◆ getRemoteIp()
|
inlineinherited |
◆ getRemotePort()
|
inlineinherited |
◆ getRequest()
|
pure virtual |
Returns pointer to the current request.
- Return values
-
HttpRequest*
Implemented in HttpServerConnection, and HttpClientConnection.
◆ getResponse()
|
inline |
Returns pointer to the current response.
- Return values
-
HttpResponse*
◆ getResponseCode()
|
inline |
- Deprecated:
- Use
getResponse()->code
instead
◆ getResponseHeader()
|
inline |
- Deprecated:
- Use
getResponse()->headers[]
instead
◆ getResponseHeaders()
|
inline |
- Deprecated:
- Use
getResponse()->headers
instead
◆ getResponseString()
|
inline |
- Deprecated:
- Use
getResponse()->getBody()
instead
◆ getServerDate()
|
inline |
- Deprecated:
- Use
getResponse()->headers.getServerDate()
instead
◆ getSsl()
|
inlineinherited |
Get a pointer to the current SSL session object.
Note that this is typically used so we can query properties of an established session. If you need to change session parameters this must be done via setSslInitHandler
.
◆ init()
|
protectedvirtual |
Initializes the http parser for a specific type of HTTP message.
- Parameters
-
type
◆ initialize()
|
protectedinherited |
◆ internalConnect()
◆ internalOnConnected()
|
protectedinherited |
◆ internalOnDnsResponse()
|
protectedinherited |
◆ internalOnError()
|
protectedinherited |
◆ internalOnPoll()
|
protectedinherited |
◆ internalOnReceive()
|
protectedinherited |
◆ internalOnSent()
|
protectedinherited |
◆ isActive()
bool HttpConnection::isActive | ( | ) |
◆ isProcessing()
|
inlineinherited |
◆ onBody()
|
protectedpure virtual |
Called when a piece of body data is received.
- Parameters
-
at the data length
- Return values
-
int 0 on success, non-0 on error
Implemented in HttpServerConnection, and HttpClientConnection.
◆ onChunkComplete()
|
inlineprotectedvirtual |
◆ onChunkHeader()
|
inlineprotectedvirtual |
◆ onConnected()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ onError()
|
overrideprotectedvirtual |
Reimplemented from TcpConnection.
◆ onFinished()
|
protectedvirtualinherited |
Reimplemented in MqttClient.
◆ onHeadersComplete()
|
protectedpure virtual |
Called when all headers are received.
- Parameters
-
headers The processed headers
- Return values
-
int 0 on success, non-0 on error
Implemented in HttpServerConnection, and HttpClientConnection.
◆ onHttpError()
|
protectedvirtual |
Called when there was an error.
- Parameters
-
error - the error code
- Return values
-
bool - false if the problem is not recoverable, true otherwise
Reimplemented in HttpServerConnection.
◆ onMessageBegin()
|
protectedpure virtual |
Called when a new incoming data is beginning to come.
- Parameters
-
parser
- Return values
-
int 0 on success, non-0 on error
Implemented in HttpServerConnection, and HttpClientConnection.
◆ onMessageComplete()
|
protectedpure virtual |
Called when the incoming data is complete.
- Parameters
-
parser
- Return values
-
int 0 on success, non-0 on error
Implemented in HttpServerConnection, and HttpClientConnection.
◆ onPath()
Called when the URL path is known.
- Parameters
-
uri
- Return values
-
int 0 on success, non-0 on error
Reimplemented in HttpServerConnection.
◆ onPoll()
|
protectedvirtualinherited |
◆ onProtocolUpgrade()
|
inlineprotectedvirtual |
Called when the HTTP protocol should be upgraded.
- Parameters
-
parser
- Return values
-
bool true on success
Reimplemented in HttpServerConnection.
◆ onReadyToSendData()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ onReceive()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ onSent()
|
overrideprotectedvirtualinherited |
Reimplemented from TcpConnection.
◆ onStatus()
|
inlineprotectedvirtual |
◆ onTcpReceive()
|
protectedvirtual |
◆ pushAsyncPart()
|
protectedinherited |
◆ reset()
|
inlinevirtual |
Reimplemented in HttpClientConnection.
◆ resetHeaders()
|
protected |
Called after all headers have been received and processed.
◆ send() [1/2]
|
inlinevirtual |
Reimplemented in HttpClientConnection.
◆ send() [2/2]
|
inherited |
◆ sendString()
|
inlineinherited |
◆ setBuffer()
|
protectedinherited |
◆ setCloseAfterSent()
|
inlineinherited |
Schedules the connection to get closed after the data is sent
- Parameters
-
ignoreIncomingData when that flag is set the connection will start ignoring incoming data.
◆ setCompleteDelegate()
|
inlineinherited |
Set or clear the callback for connection close.
- Parameters
-
completeCb callback delegate or nullptr
◆ setDefaultParser()
|
virtual |
◆ setDestroyedDelegate()
|
inlineinherited |
Sets a callback to be called when the object instance is destroyed.
- Parameters
-
destroyedDelegate
◆ setReceiveDelegate()
|
inlineinherited |
Set or clear the callback for received data.
- Parameters
-
receiveCb callback delegate or nullptr
◆ setSslConnection()
|
inlineinherited |
◆ setSslInitHandler()
|
inlineinherited |
Set the SSL session initialisation callback.
- Parameters
-
handler
◆ setTimeOut()
|
inherited |
◆ sslCreateSession()
|
protectedinherited |
◆ sslInitSession()
|
inlineprotectedvirtualinherited |
Override in inherited classes to perform custom session initialisation.
Called when TCP connection is established before initiating handshake.
Reimplemented in HttpClientConnection.
◆ trySend()
|
inlineprotectedinherited |
◆ write() [1/2]
|
virtualinherited |
Base write operation.
- Parameters
-
data len apiflags TCP_WRITE_FLAG_COPY, TCP_WRITE_FLAG_MORE
- Return values
-
int -1 on error
Reimplemented in FtpDataStream.
◆ write() [2/2]
|
inherited |
◆ writeString() [1/2]
|
inlineinherited |
◆ writeString() [2/2]
|
inlineinherited |
Member Data Documentation
◆ autoSelfDestruct
|
protectedinherited |
◆ buffer
|
protectedinherited |
Used internally to buffer arbitrary data via send() methods.
◆ canSend
|
protectedinherited |
◆ header
|
protected |
Header construction.
◆ incomingHeaders
|
protected |
Full set of incoming headers.
◆ parser
|
protected |
◆ parserSettings
|
staticprotected |
Callback table for parser.
◆ response
|
protected |
◆ sleep
|
protectedinherited |
◆ ssl
|
protectedinherited |
◆ sslInit
|
protectedinherited |
◆ state
|
protected |
◆ stream
|
protectedinherited |
The currently active stream being sent.
◆ tcp
|
protectedinherited |
◆ timeOut
|
protectedinherited |
By default a TCP connection does not have a time out.
◆ useSsl
|
protectedinherited |
The documentation for this class was generated from the following file: