Crow/include/http_request.h

53 lines
1.3 KiB
C
Raw Normal View History

2014-04-01 13:58:52 +00:00
#pragma once
2014-04-14 15:31:51 +00:00
#include "common.h"
#include "ci_map.h"
#include "query_string.h"
2014-04-14 15:31:51 +00:00
2014-04-26 17:19:59 +00:00
namespace crow
2014-04-01 13:58:52 +00:00
{
template <typename T>
inline const std::string& get_header_value(const T& headers, const std::string& key)
{
if (headers.count(key))
{
return headers.find(key)->second;
}
static std::string empty;
return empty;
}
2014-04-01 13:58:52 +00:00
struct request
{
HTTPMethod method;
std::string raw_url;
2014-04-01 13:58:52 +00:00
std::string url;
query_string url_params;
ci_map headers;
2014-04-01 13:58:52 +00:00
std::string body;
void* middleware_context{};
request()
: method(HTTPMethod::GET)
{
}
request(HTTPMethod method, std::string raw_url, std::string url, query_string url_params, ci_map headers, std::string body)
: method(method), raw_url(std::move(raw_url)), url(std::move(url)), url_params(std::move(url_params)), headers(std::move(headers)), body(std::move(body))
{
}
void add_header(std::string key, std::string value)
{
headers.emplace(std::move(key), std::move(value));
}
const std::string& get_header_value(const std::string& key) const
{
return crow::get_header_value(headers, key);
}
2014-04-01 13:58:52 +00:00
};
}