12 #define OPENSSL_NO_SHA1 1
60 char const *
data =
nullptr;
88 void parse_http_header(
char const *begin,
char const *end, std::vector<std::string> *header);
94 static std::string
header_value(std::vector<std::string>
const *header, std::string
const &name);
101 void reset()
override;
117 return get(req,
nullptr);
122 return post(req, postdata,
nullptr);
124 void close()
override;
127 std::string
header_value(std::string
const &name)
const;
136 static std::string
quick_get(
const std::string &url);
Definition: inetclient.h:120
Definition: inetclient.h:11
Definition: inetclient.h:57
Definition: inetclient.h:25
Definition: webclient.h:17
virtual ~WebClientHandler()=default
virtual void checkContent(char const *ptr, size_t len)
Definition: webclient.h:24
virtual void checkHeader(WebClient *wc)
Definition: webclient.h:20
Definition: webclient.h:44
static constexpr const char * APPLICATION_X_WWW_FORM_URLENCODED
Definition: webclient.h:47
static constexpr const char * MULTIPART_FORM_DATA
Definition: webclient.h:48
static constexpr const char * APPLICATION_OCTET_STREAM
Definition: webclient.h:46
Definition: webclient.h:42
void output_debug_string(char const *str)
Definition: webclient.cpp:194
void close() override
Definition: webclient.cpp:1221
static void initialize()
Definition: webclient.cpp:149
char const * content_data() const override
Definition: webclient.cpp:1203
bool http_get(InetClient::Request const &request_req, InetClient::Post const *postdata, RequestOption const &opt, ResponseHeader *rh, std::vector< char > *out)
Definition: webclient.cpp:674
void parse_http_header(char const *begin, char const *end, std::vector< std::string > *header)
Definition: webclient.cpp:332
void set_http_version(HttpVersion httpver)
Definition: webclient.cpp:144
HttpVersion
Definition: webclient.h:50
@ HTTP_1_0
Definition: webclient.h:51
@ HTTP_1_1
Definition: webclient.h:52
WebClient(WebClient const &)=delete
bool https_get(InetClient::Request const &request_url, InetClient::Post const *postdata, RequestOption const &opt, ResponseHeader *rh, std::vector< char > *out)
Definition: webclient.cpp:724
int post(InetClient::Request const &req, InetClient::Post const *postdata, WebClientHandler *handler)
Definition: webclient.cpp:1215
WebClient(WebContext *webcx)
Definition: webclient.cpp:130
bool get(InetClient::Request const &req, InetClient::Post const *post, InetClient::Response *out, WebClientHandler *handler)
Definition: webclient.cpp:1046
static void cleanup()
Definition: webclient.cpp:176
void append(char const *ptr, size_t len, std::vector< char > *out, WebClientHandler *handler)
Definition: webclient.cpp:395
static std::string quick_get(const std::string &url)
Definition: webclient.cpp:1394
static void make_multipart_form_data(const std::vector< Part > &parts, InetClient::Post *out, std::string const &boundary)
Definition: webclient.cpp:1262
void output_debug_strings(const std::vector< std::string > &vec)
Definition: webclient.cpp:205
void set_default_header(InetClient::Request const &url, InetClient::Post const *postdata, const RequestOption &opt)
Definition: webclient.cpp:250
void add_header(std::string const &text)
Definition: webclient.cpp:1245
size_t content_length() const override
Definition: webclient.cpp:1198
void clear_error()
Definition: webclient.cpp:217
InetClient::Error const & error() const override
Definition: webclient.cpp:212
static int get_port(InetClient::URL const *url, char const *scheme, char const *protocol)
Definition: webclient.cpp:222
static void make_application_www_form_urlencoded(char const *begin, char const *end, InetClient::Post *out)
Definition: webclient.cpp:1255
void on_end_header(const std::vector< char > *vec, WebClientHandler *handler)
Definition: webclient.cpp:384
int post(InetClient::Request const &req, InetClient::Post const *postdata) override
Definition: webclient.h:120
static std::string checkip()
Definition: webclient.cpp:1405
static std::string header_value(std::vector< std::string > const *header, std::string const &name)
Definition: webclient.cpp:1160
~WebClient()
Definition: webclient.cpp:138
Private * m
Definition: webclient.h:82
void operator=(WebClient const &)=delete
std::string content_type() const
Definition: webclient.cpp:1183
static void parse_header(std::vector< std::string > const *header, InetClient::Response *res)
Definition: webclient.cpp:1097
void reset() override
Definition: webclient.cpp:186
void receive_(const RequestOption &opt, std::function< int(char *, int)> const &, ResponseHeader *rh, std::vector< char > *out)
Definition: webclient.cpp:538
std::string make_http_request(InetClient::Request const &url, InetClient::Post const *postdata, const WebProxy *proxy, bool https)
Definition: webclient.cpp:298
int get(InetClient::Request const &req) override
Definition: webclient.h:115
InetClient::Response const & response() const override
Definition: webclient.cpp:1250
Definition: webclient.h:140
void notify_broken_pipe()
Definition: webclient.cpp:1389
WebContext(WebContext const &r)=delete
~WebContext()
Definition: webclient.cpp:1330
bool load_cacert(char const *path)
Definition: webclient.cpp:1379
WebProxy const * http_proxy() const
Definition: webclient.cpp:1360
void set_keep_alive_enabled(bool f)
Definition: webclient.cpp:1343
WebContext(WebClient::HttpVersion httpver)
Definition: webclient.cpp:1318
void set_https_proxy(std::string const &proxy)
Definition: webclient.cpp:1354
Private * m
Definition: webclient.h:144
void set_http_proxy(std::string const &proxy)
Definition: webclient.cpp:1348
void set_http_version(WebClient::HttpVersion httpver)
Definition: webclient.cpp:1338
void operator=(WebContext const &r)=delete
WebProxy const * https_proxy() const
Definition: webclient.cpp:1368
Definition: webclient.h:31
bool empty() const
Definition: webclient.h:34
std::string server
Definition: webclient.h:33
Definition: inetclient.h:52
Definition: inetclient.h:100
Definition: webclient.h:54
std::string type
Definition: webclient.h:55
std::string name
Definition: webclient.h:56
std::string filename
Definition: webclient.h:57
Definition: webclient.h:59
Part(char const *data, size_t size, std::string const &content_type={})
Definition: webclient.h:66
char const * data
Definition: webclient.h:60
void set_content_disposition(ContentDisposition const &cd)
Definition: webclient.h:72
size_t size
Definition: webclient.h:61
std::string content_type
Definition: webclient.h:62
std::string content_transfer_encoding
Definition: webclient.h:64
ContentDisposition content_disposition
Definition: webclient.h:63
Definition: webclient.cpp:115
Definition: webclient.h:77
bool keep_alive
Definition: webclient.h:79
WebClientHandler * handler
Definition: webclient.h:78
Definition: webclient.cpp:106