23 #include "HttpResponse.h"
25 HttpResponse::HttpResponse() {
27 this->server =
"FFEAD 1.1";
30 HttpResponse::~HttpResponse() {
34 string HttpResponse::generateResponse()
37 resp = (httpVersion +
" " + statusCode +
" " + statusMsg +
"\r\n");
38 if(this->server!=
"")resp +=
"Server: " + this->server +
"\r\n";
39 if(this->date!=
"")resp +=
"Date: " + this->date +
"\r\n";
40 if(this->connection!=
"")resp +=
"Connection: " + this->connection +
"\r\n";
41 if(this->location!=
"")resp +=
"Location: " + this->location +
"\r\n";
42 if(this->accept_ranges!=
"")resp +=
"Accept-Ranges: " + this->accept_ranges +
"\r\n";
43 if(this->content_type!=
"")resp +=
"Content-Type: " + this->content_type +
"\r\n";
44 if(this->content_str!=
"")resp +=
"Content-Length: " + CastUtil::lexical_cast<
string>((int)content_str.length()) +
"\r\n";
45 if(this->last_modified!=
"")resp +=
"Last-Modified: " + this->last_modified +
"\r\n";
46 for (
int var = 0; var < (int)this->cookies.size(); var++)
48 resp +=
"Set-Cookie: " + this->cookies.at(var) +
"\r\n";
51 resp += this->content_str;
55 string HttpResponse::generateHeadResponse()
58 resp = (httpVersion +
" " + statusCode +
" " + statusMsg +
"\r\n");
59 if(this->server!=
"")resp +=
"Server: " + this->server +
"\r\n";
60 if(this->date!=
"")resp +=
"Date: " + this->date +
"\r\n";
61 if(this->connection!=
"")resp +=
"Connection: " + this->connection +
"\r\n";
62 if(this->location!=
"")resp +=
"Location: " + this->location +
"\r\n";
63 if(this->accept_ranges!=
"")resp +=
"Accept-Ranges: " + this->accept_ranges +
"\r\n";
64 if(this->content_type!=
"")resp +=
"Content-Type: " + this->content_type +
"\r\n";
65 if(this->content_str!=
"")resp +=
"Content-Length: " + CastUtil::lexical_cast<
string>((int)content_str.length()) +
"\r\n";
66 if(this->last_modified!=
"")resp +=
"Last-Modified: " + this->last_modified +
"\r\n";
67 for (
int var = 0; var < (int)this->cookies.size(); var++)
69 resp +=
"Set-Cookie: " + this->cookies.at(var) +
"\r\n";
75 string HttpResponse::generateOptionsResponse()
78 resp = (httpVersion +
" " + statusCode +
" " + statusMsg +
"\r\n");
79 if(this->server!=
"")resp +=
"Server: " + this->server +
"\r\n";
80 if(this->date!=
"")resp +=
"Date: " + this->date +
"\r\n";
81 if(this->connection!=
"")resp +=
"Connection: " + this->connection +
"\r\n";
82 for (
int var = 0; var < (int)this->cookies.size(); var++)
84 resp +=
"Set-Cookie: " + this->cookies.at(var) +
"\r\n";
86 resp +=
"Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE\r\n";
91 string HttpResponse::generateTraceResponse(
HttpRequest* req)
94 resp = (httpVersion +
" " + statusCode +
" " + statusMsg +
"\r\n");
95 if(this->server!=
"")resp +=
"Server: " + this->server +
"\r\n";
96 if(this->date!=
"")resp +=
"Date: " + this->date +
"\r\n";
97 if(this->connection!=
"")resp +=
"Connection: " + this->connection +
"\r\n";
98 if(this->location!=
"")resp +=
"Location: " + this->location +
"\r\n";
99 if(this->accept_ranges!=
"")resp +=
"Accept-Ranges: " + this->accept_ranges +
"\r\n";
100 if(this->content_type!=
"")resp +=
"Content-Type: " + this->content_type +
"\r\n";
101 if(this->content_str!=
"")resp +=
"Content-Length: " + CastUtil::lexical_cast<
string>((int)content_str.length()) +
"\r\n";
102 if(this->last_modified!=
"")resp +=
"Last-Modified: " + this->last_modified +
"\r\n";
103 for (
int var = 0; var < (int)this->cookies.size(); var++)
105 resp +=
"Set-Cookie: " + this->cookies.at(var) +
"\r\n";
110 if(req->getHost()!=
"")resp +=
"Host: " + req->getHost() +
"\r\n";
111 if(req->getUser_agent()!=
"")resp +=
"User-Agent: " + req->getUser_agent() +
"\r\n";
112 if(req->getAccept()!=
"")resp +=
"Accept: " + req->getAccept() +
"\r\n";
113 if(req->getAccept_lang()!=
"")resp +=
"Accept-Language: " + req->getAccept_lang() +
"\r\n";
114 if(req->getAccept_encod()!=
"")resp +=
"Accept-Encoding: " + req->getAccept_encod() +
"\r\n";
115 if(req->getAccept_chars()!=
"")resp +=
"Accept-Charset: " + req->getAccept_chars() +
"\r\n";
116 if(req->getKeep_alive()!=
"")resp +=
"Keep-Alive: " + req->getKeep_alive() +
"\r\n";
117 if(req->getConnection()!=
"")resp +=
"Connection: " + req->getConnection() +
"\r\n";
118 if(req->getCache_ctrl()!=
"")resp +=
"Cache-Control: " + req->getCache_ctrl() +
"\r\n";
119 if(req->getContent_type()!=
"")resp +=
"Content-Type: " + req->getContent_type() +
"\r\n";
120 if(req->getContent_len()!=
"")resp +=
"Content-Length: " + req->getContent_len() +
"\r\n";
121 if(req->getReferer()!=
"")resp +=
"Referer: " + req->getReferer() +
"\r\n";
122 if(req->getPragma()!=
"")resp +=
"Pragma: " + req->getPragma() +
"\r\n";