mbed-os
Fork of mbed-os by
Diff: features/unsupported/net/https/HTTPSClient.h
- Revision:
- 0:f269e3021894
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/features/unsupported/net/https/HTTPSClient.h Sun Oct 23 15:10:02 2016 +0000 @@ -0,0 +1,56 @@ +#ifndef HTTPSCLIENT_H +#define HTTPSCLIENT_H + +#include "Socket/Socket.h" +#include "Socket/Endpoint.h" +#include "axTLS/ssl/ssl.h" +#include "HTTPHeader.h" + +/** +TCP socket connection +*/ +class HTTPSClient : public Socket, public Endpoint { + +public: + /** TCP socket connection + */ + HTTPSClient(); + + + virtual ~HTTPSClient(); + + /** Connects this TCP socket to the server + \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS. + \param port The host's port to connect to. + \return 0 on success, -1 on failure. + */ + int connect(const char* host); + + /** Check if the socket is connected + \return true if connected, false otherwise. + */ + bool is_connected(void); + + // Returns the size of the body + HTTPHeader get(char *path); + + int read(char *data, int len); + + + void close(); + +private: + + + int send(char* data, int length); + + uint8_t read_line(); + HTTPHeader read_header(); + + bool _is_connected; + SSL_CTX _ssl_ctx; + SSL _ssl; + std::string _host; +}; + +#endif