-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHttpResponse.h
52 lines (49 loc) · 1.19 KB
/
HttpResponse.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once
#include "Buffer.h"
#include <map>
#include <functional>
using namespace std;
// 定义状态码枚举
enum class StatusCode
{
Unknown,
OK = 200,
MovedPermanently = 301,
MovedTemporarily = 302,
BadRequest = 400,
NotFound = 404
};
// 定义结构体
class HttpResponse
{
public:
HttpResponse();
~HttpResponse();
function<void(const string, struct Buffer*, int)> sendDataFunc;
// 添加响应头
void addHeader(const string key, const string value);
// 组织http响应数据
void prepareMsg(Buffer* sendBuf, int socket);
inline void setFileName(string name)
{
m_fileName = name;
}
inline void setStatusCode(StatusCode code)
{
m_statusCode = code;
}
private:
// 状态行: 状态码, 状态描述
StatusCode m_statusCode;
string m_fileName;
// 响应头 - 键值对
map<string, string> m_headers;
// 定义状态码和描述的对应关系
const map<int, string> m_info = {
{200, "OK"},
{301, "MovedPermanently"},
{302, "MovedTemporarily"},
{400, "BadRequest"},
{404, "NotFound"},
};
};