summaryrefslogtreecommitdiff
path: root/include/HttpClient.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/HttpClient.h')
-rw-r--r--include/HttpClient.h44
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