Small cleaning.
This commit is contained in:
parent
70220fc6e9
commit
d7fe11913f
26 changed files with 613 additions and 548 deletions
|
@ -4,77 +4,77 @@
|
|||
|
||||
void HttpHeader::parse(const std::vector<std::string >& message)
|
||||
{
|
||||
std::string tag;
|
||||
std::string value;
|
||||
bool foundDelimiter{false};
|
||||
for (const auto& line : message)
|
||||
{
|
||||
for(std::size_t idx = 0; idx< line.size(); idx++)
|
||||
{
|
||||
const auto c = line[idx];
|
||||
if (c == StringUtils::COLON)
|
||||
{
|
||||
foundDelimiter = true;
|
||||
}
|
||||
else if(foundDelimiter)
|
||||
{
|
||||
value.push_back(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
tag.push_back(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::string tag;
|
||||
std::string value;
|
||||
bool foundDelimiter{false};
|
||||
for (const auto& line : message)
|
||||
{
|
||||
for(std::size_t idx = 0; idx< line.size(); idx++)
|
||||
{
|
||||
const auto c = line[idx];
|
||||
if (c == StringUtils::COLON)
|
||||
{
|
||||
foundDelimiter = true;
|
||||
}
|
||||
else if(foundDelimiter)
|
||||
{
|
||||
value.push_back(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
tag.push_back(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tag.empty() || value.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (tag.empty() || value.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (tag == "Host")
|
||||
{
|
||||
mHost = value;
|
||||
}
|
||||
else if (tag == "User-Agent")
|
||||
{
|
||||
mUserAgent = value;
|
||||
}
|
||||
else if (tag == "Accept")
|
||||
{
|
||||
mAccept = value;
|
||||
}
|
||||
else if (tag == "Accept-Language")
|
||||
{
|
||||
mAcceptLanguage = value;
|
||||
}
|
||||
else if (tag == "Accept-Encoding")
|
||||
{
|
||||
mAcceptEncoding = value;
|
||||
}
|
||||
else if (tag == "Connection")
|
||||
{
|
||||
mConnection = value;
|
||||
}
|
||||
else if (tag == "Referer")
|
||||
{
|
||||
mReferer = value;
|
||||
}
|
||||
else if (tag == "Sec-Fetch-Dest")
|
||||
{
|
||||
mSecFetchDest = value;
|
||||
}
|
||||
else if (tag == "Sec-Fetch-Mode")
|
||||
{
|
||||
mSecFetchMode = value;
|
||||
}
|
||||
else if (tag == "Sec-Fetch-Site")
|
||||
{
|
||||
mSecFetchSite = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
mOtherFields[tag] = value;
|
||||
}
|
||||
if (tag == "Host")
|
||||
{
|
||||
mHost = value;
|
||||
}
|
||||
else if (tag == "User-Agent")
|
||||
{
|
||||
mUserAgent = value;
|
||||
}
|
||||
else if (tag == "Accept")
|
||||
{
|
||||
mAccept = value;
|
||||
}
|
||||
else if (tag == "Accept-Language")
|
||||
{
|
||||
mAcceptLanguage = value;
|
||||
}
|
||||
else if (tag == "Accept-Encoding")
|
||||
{
|
||||
mAcceptEncoding = value;
|
||||
}
|
||||
else if (tag == "Connection")
|
||||
{
|
||||
mConnection = value;
|
||||
}
|
||||
else if (tag == "Referer")
|
||||
{
|
||||
mReferer = value;
|
||||
}
|
||||
else if (tag == "Sec-Fetch-Dest")
|
||||
{
|
||||
mSecFetchDest = value;
|
||||
}
|
||||
else if (tag == "Sec-Fetch-Mode")
|
||||
{
|
||||
mSecFetchMode = value;
|
||||
}
|
||||
else if (tag == "Sec-Fetch-Site")
|
||||
{
|
||||
mSecFetchSite = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
mOtherFields[tag] = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,20 +7,20 @@
|
|||
class HttpHeader
|
||||
{
|
||||
public:
|
||||
void parse(const std::vector<std::string >& message);
|
||||
void parse(const std::vector<std::string >& message);
|
||||
|
||||
private:
|
||||
|
||||
std::string mHost;
|
||||
std::string mUserAgent;
|
||||
std::string mAccept;
|
||||
std::string mAcceptLanguage;
|
||||
std::string mAcceptEncoding;
|
||||
std::string mConnection;
|
||||
std::string mReferer;
|
||||
std::string mSecFetchDest;
|
||||
std::string mSecFetchMode;
|
||||
std::string mSecFetchSite;
|
||||
std::string mHost;
|
||||
std::string mUserAgent;
|
||||
std::string mAccept;
|
||||
std::string mAcceptLanguage;
|
||||
std::string mAcceptEncoding;
|
||||
std::string mConnection;
|
||||
std::string mReferer;
|
||||
std::string mSecFetchDest;
|
||||
std::string mSecFetchMode;
|
||||
std::string mSecFetchSite;
|
||||
|
||||
std::map<std::string, std::string> mOtherFields;
|
||||
std::map<std::string, std::string> mOtherFields;
|
||||
};
|
||||
|
|
|
@ -6,63 +6,63 @@
|
|||
|
||||
void HttpRequest::parseMessage(const std::string& message)
|
||||
{
|
||||
std::stringstream ss(message);
|
||||
std::stringstream ss(message);
|
||||
|
||||
std::string buffer;
|
||||
bool firstLine {true};
|
||||
std::string buffer;
|
||||
bool firstLine {true};
|
||||
|
||||
std::vector<std::string> headers;
|
||||
while(std::getline(ss, buffer, '\n'))
|
||||
{
|
||||
if (firstLine)
|
||||
{
|
||||
parseFirstLine(buffer);
|
||||
firstLine = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
headers.push_back(buffer);
|
||||
}
|
||||
}
|
||||
mHeader.parse(headers);
|
||||
std::vector<std::string> headers;
|
||||
while(std::getline(ss, buffer, '\n'))
|
||||
{
|
||||
if (firstLine)
|
||||
{
|
||||
parseFirstLine(buffer);
|
||||
firstLine = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
headers.push_back(buffer);
|
||||
}
|
||||
}
|
||||
mHeader.parse(headers);
|
||||
}
|
||||
|
||||
void HttpRequest::parseFirstLine(const std::string& line)
|
||||
{
|
||||
bool inPath{false};
|
||||
bool inMethod{true};
|
||||
bool inProtocol{false};
|
||||
bool inPath{false};
|
||||
bool inMethod{true};
|
||||
bool inProtocol{false};
|
||||
|
||||
for (std::size_t idx=0; idx<line.size();idx++)
|
||||
{
|
||||
const auto c = line[idx];
|
||||
if (inPath)
|
||||
{
|
||||
if (StringUtils::IsSpace(c))
|
||||
{
|
||||
inPath = false;
|
||||
inMethod = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
mMethod.push_back(c);
|
||||
}
|
||||
}
|
||||
else if (inMethod)
|
||||
{
|
||||
if (StringUtils::IsSpace(c))
|
||||
{
|
||||
inMethod = false;
|
||||
inProtocol = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
mPath.push_back(c);
|
||||
}
|
||||
}
|
||||
else if (inProtocol)
|
||||
{
|
||||
mProtocolVersion.push_back(c);
|
||||
}
|
||||
}
|
||||
for (std::size_t idx=0; idx<line.size();idx++)
|
||||
{
|
||||
const auto c = line[idx];
|
||||
if (inPath)
|
||||
{
|
||||
if (StringUtils::IsSpace(c))
|
||||
{
|
||||
inPath = false;
|
||||
inMethod = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
mMethod.push_back(c);
|
||||
}
|
||||
}
|
||||
else if (inMethod)
|
||||
{
|
||||
if (StringUtils::IsSpace(c))
|
||||
{
|
||||
inMethod = false;
|
||||
inProtocol = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
mPath.push_back(c);
|
||||
}
|
||||
}
|
||||
else if (inProtocol)
|
||||
{
|
||||
mProtocolVersion.push_back(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
class HttpRequest
|
||||
{
|
||||
public:
|
||||
HttpRequest() = default;
|
||||
HttpRequest() = default;
|
||||
|
||||
void parseMessage(const std::string& message);
|
||||
void parseMessage(const std::string& message);
|
||||
|
||||
private:
|
||||
|
||||
void parseFirstLine(const std::string& line);
|
||||
void parseFirstLine(const std::string& line);
|
||||
|
||||
HttpHeader mHeader;
|
||||
std::string mMethod;
|
||||
std::string mPath;
|
||||
std::string mProtocolVersion;
|
||||
HttpHeader mHeader;
|
||||
std::string mMethod;
|
||||
std::string mPath;
|
||||
std::string mProtocolVersion;
|
||||
};
|
||||
|
|
|
@ -4,9 +4,7 @@
|
|||
|
||||
class HttpResponse
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
HttpResponse();
|
||||
|
||||
~HttpResponse();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue