mlisp/clib/sslclient.h

37 lines
777 B
C++

#include <openssl/err.h>
#include <openssl/ssl.h>
#include <string>
#include <unordered_map>
class HttpClient {
// TODO at this moment only https is implemented
private:
SSL *ssl;
int sock;
std::string full_url, proto, server, port, uri, params, href;
std::basic_string<char> ssl_read_packet;
std::unordered_map<std::string, std::string> headers_map;
public:
HttpClient();
std::pair<int, std::string>
doGetRequest(const std::string &url, const std::unordered_map<std::string, std::string> &headers);
private:
std::string inetAddress(std::string hostname);
int sslRecvPacket();
int sslSendPacket(std::string buf);
int sslRequest(const std::string &server_name, const std::string &request);
void log_ssl();
};