summaryrefslogtreecommitdiff
path: root/tmk_core/tool/mbed/mbed-sdk/libraries/net/https/HTTPSClient.h
blob: 92c6908479b66c488bd37e7daf9b22067b855c2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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