diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/HttpClient.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/HttpClient.h b/include/HttpClient.h new file mode 100644 index 0000000..b2b8d22 --- /dev/null +++ b/include/HttpClient.h @@ -0,0 +1,44 @@ +#ifndef __HTTPCLIENT_H__ +#define __HTTPCLIENT_H__ + +#include <vector> + +#include <Socket.h> +#include <BString.h> +#include <Task.h> +#include <Handle.h> +#include <Buffer.h> +#include <Exceptions.h> + +typedef std::vector<String> t_headers; + +extern t_headers no_headers; + +class HttpClient : public Task { + public: + HttpClient(const String & url, Handle * out, int * http_code = 0, const String & fake_host = "", t_headers = no_headers); + virtual ~HttpClient(); + String GetStatus(); + + protected: + virtual int Do() throw (GeneralException); + + private: + void DecodeURL() throw (GeneralException); + + String url; + Handle * out; + int * http_code_p; + String fake_host; + t_headers headers; + Socket Client; + + Buffer b; + + String host, uri; + int http_code; + + Task * c; +}; + +#endif |