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
|