mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-05-02 21:52:30 +02:00
Add util::GetWebuiDataDir(), HTTP parsing utilities and tests.
This commit is contained in:
parent
6857dcb911
commit
e3b891de41
6 changed files with 138 additions and 0 deletions
60
core/util/HTTP.cpp
Normal file
60
core/util/HTTP.cpp
Normal file
|
@ -0,0 +1,60 @@
|
|||
#include "HTTP.h"
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <sstream>
|
||||
|
||||
namespace i2p {
|
||||
namespace util {
|
||||
namespace http {
|
||||
|
||||
void Request::parseRequestLine(const std::string& line)
|
||||
{
|
||||
std::stringstream ss(line);
|
||||
ss >> method;
|
||||
ss >> uri;
|
||||
}
|
||||
|
||||
void Request::parseHeaderLine(const std::string& line)
|
||||
{
|
||||
const std::size_t pos = line.find_first_of(':');
|
||||
headers[boost::trim_copy(line.substr(0, pos))] = boost::trim_copy(line.substr(pos + 1));
|
||||
}
|
||||
|
||||
Request::Request(const std::string& data)
|
||||
{
|
||||
std::stringstream ss(data);
|
||||
std::string line;
|
||||
std::getline(ss, line);
|
||||
parseRequestLine(line);
|
||||
|
||||
while(std::getline(ss, line))
|
||||
parseHeaderLine(line);
|
||||
}
|
||||
|
||||
std::string Request::getMethod() const
|
||||
{
|
||||
return method;
|
||||
}
|
||||
|
||||
std::string Request::getUri() const
|
||||
{
|
||||
return uri;
|
||||
}
|
||||
|
||||
std::string Request::getHost() const
|
||||
{
|
||||
return host;
|
||||
}
|
||||
|
||||
int Request::getPort() const
|
||||
{
|
||||
return port;
|
||||
}
|
||||
|
||||
std::string Request::getHeader(const std::string& name) const
|
||||
{
|
||||
return headers.at(name);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue