source.txt
来自「在 CGI 程序中获取表单数据 http_request.h」· 文本 代码 · 共 75 行
TXT
75 行
#ifndef _HTTP_REQUEST_APPEARED_
#define _HTTP_REQUEST_APPEARED_
#include <map>
#include <string>
#include <vector>
#include <cassert>
#include <cstdlib>
#include <ctype.h>
namespace euc
{
class http_request
{
private:
static http_request _unique;
private:
std::multimap<std::string, std::string> _query;
std::multimap<std::string, std::string> _form;
private:
http_request();
public:
http_request(const http_request &other);
private:
void _decode(const std::string &Query,
std::multimap<std::string, std::string> &Map);
public:
// 获取提交数据,Post 方法优先于 Get 方法
std::string get_data(std::string varname) const;
// 获取多个同名提交数据
std::vector<std::string> get_data_vector
(std::string varname) const;
// 获取使用 Post 方法提交的数据,忽略 Get 方法提交的数据
std::string get_form_data(const std::string varname) const;
// 获取使用 Get 方法提交的数据,忽略 Post 方法提交的数据
std::string get_query_data(const std::string varname) const;
// 获取使用 Post 方法提交的多个同名数据,忽略 Get 方法提交的数据
std::vector<std::string> get_form_data_vector
(std::string varname) const;
// 获取使用 Get 方法提交的多个同名数据,忽略 Post 方法提交的数据
std::vector<std::string> get_query_data_vector
(std::string varname) const;
// 获取提交数据,Post 方法优先于 Get 方法,等同于 GetData
std::string operator[](const std::string varname) const;
// 获取多个同名提交数据,等同于 GetDataVector
std::vector<std::string> operator()
(const std::string varname) const;
// 获取 http_request 对象的实例
static const http_request &get_instance() { return _unique; }
private:
std::string _getdata(const std::string &varname,
const std::multimap<std::string, std::string> &Map) const;
std::vector<std::string> _getvector(const std::string &varname,
const std::multimap<std::string, std::string> &Map) const;
};
extern const http_request &request;
} // namespace
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?