summaryrefslogtreecommitdiffhomepage
path: root/NetEx/HttpResponse.h
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-03-29 22:40:57 +0200
committerAki <please@ignore.pl>2022-03-29 22:40:57 +0200
commit6204e62c69c1a05d3beddd0c7397b3f54e576d74 (patch)
tree6dfc5ef3c017942fd1a9d980893fe1c0c0ebd427 /NetEx/HttpResponse.h
parented2b908b7d88bcb5730ef74ae97020b683da51ae (diff)
downloadstarshatter-6204e62c69c1a05d3beddd0c7397b3f54e576d74.zip
starshatter-6204e62c69c1a05d3beddd0c7397b3f54e576d74.tar.gz
starshatter-6204e62c69c1a05d3beddd0c7397b3f54e576d74.tar.bz2
Split Param, Response and Request from HttpServer files
Diffstat (limited to 'NetEx/HttpResponse.h')
-rw-r--r--NetEx/HttpResponse.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/NetEx/HttpResponse.h b/NetEx/HttpResponse.h
new file mode 100644
index 0000000..cd53fcb
--- /dev/null
+++ b/NetEx/HttpResponse.h
@@ -0,0 +1,99 @@
+/* Starshatter: The Open Source Project
+ Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
+ Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
+ Copyright (c) 1997-2006, Destroyer Studios LLC.
+*/
+
+#ifndef HttpResponse_h
+#define HttpResponse_h
+
+#include "HttpParam.h"
+#include "List.h"
+#include "Text.h"
+
+
+class HttpResponse
+{
+public:
+ static const char* TYPENAME() { return "HttpResponse"; }
+
+ enum STATUS {
+ SC_CONTINUE = 100,
+ SC_SWITCHING_PROTOCOLS = 101,
+
+ SC_OK = 200,
+ SC_CREATED = 201,
+ SC_ACCEPTED = 202,
+ SC_NON_AUTHORITATIVE = 203,
+ SC_NO_CONTENT = 204,
+ SC_RESET_CONTENT = 205,
+ SC_PARTIAL_CONTENT = 206,
+
+ SC_MULTIPLE_CHOICES = 300,
+ SC_MOVED_PERMANENTLY = 301,
+ SC_FOUND = 302,
+ SC_SEE_OTHER = 303,
+ SC_NOT_MODIFIED = 304,
+ SC_USE_PROXY = 305,
+ SC_TEMPORARY_REDIRECT = 307,
+
+ SC_BAD_REQUEST = 400,
+ SC_UNAUTHORIZED = 401,
+ SC_PAYMENT_REQUIRED = 402,
+ SC_FORBIDDEN = 403,
+ SC_NOT_FOUND = 404,
+ SC_METHOD_NOT_ALLOWED = 405,
+ SC_NOT_ACCEPTABLE = 406,
+ SC_PROXY_AUTH_REQ = 407,
+ SC_REQUEST_TIME_OUT = 408,
+ SC_CONFLICT = 409,
+ SC_GONE = 410,
+ SC_LENGTH_REQUIRED = 411,
+
+ SC_SERVER_ERROR = 500,
+ SC_NOT_IMPLEMENTED = 501,
+ SC_BAD_GATEWAY = 502,
+ SC_SERVICE_UNAVAILABLE = 503,
+ SC_GATEWAY_TIMEOUT = 504,
+ SC_VERSION_NOT_SUPPORTED= 505
+ };
+
+
+ HttpResponse(int status=500, const char* content=0);
+ HttpResponse(const char* response);
+ ~HttpResponse();
+
+ operator Text();
+
+ void ParseResponse(Text request);
+ void ParseCookie(const char* param);
+
+ int Status() const { return status; }
+ void SetStatus(int s) { status = s; }
+
+ Text Content() const { return content; }
+ void SetContent(Text t) { content = t; }
+ void AddContent(Text t) { content += t; }
+
+ List<HttpParam>& GetHeaders() { return headers; }
+ List<HttpParam>& GetCookies() { return cookies; }
+
+ Text GetHeader(const char* name);
+ void SetHeader(const char* name, const char* value);
+ void AddHeader(const char* name, const char* value);
+ Text GetCookie(const char* name);
+ void SetCookie(const char* name, const char* value);
+ void AddCookie(const char* name, const char* value);
+
+ void SendRedirect(const char* url);
+
+private:
+ int status;
+ Text content;
+
+ List<HttpParam> headers;
+ List<HttpParam> cookies;
+};
+
+
+#endif // HttpResponse_h