Service_NSSM/CC_SDK/Include/CCServlet/CCHttpClient.h
2025-09-27 14:24:18 +08:00

67 lines
1.4 KiB
C++

#ifndef __HttpClient_H_
#define __HttpClient_H_
#pragma once
// 包含必要的头文件
#include "CCSocket.h"
#include "CCJSONObject.h"
#include "CCString.h"
#include <sstream>
#include <regex>
#include "map"
// 定义最大数据大小
#define MaxDataSize 2048
// 命名空间CTL开始
namespace CTL {
// 请求处理状态枚举
enum RequestProcessA
{
RequestProcessA_First,
RequestProcessA_Header,
RequestProcessA_Body,
};
// 响应结构体
struct CCResponseA
{
// 响应头
std::map<CTL::String, CTL::String> Headers;
// 缓冲区
char Buffer[MaxDataSize] = { 0 };
// 响应体
CTL::String Body;
// 请求方法
CTL::String Method;
// 请求路径
CTL::String Path;
// 协议版本
CTL::String Version;
// 状态码
int StatusCode = 0;
};
// HttpClient类
class HttpClient
{
private:
public:
// 构造函数
HttpClient();
// 析构函数
~HttpClient();
// 发起请求
CCResponseA Request(CTL::String Url,CTL::String Data,CTL::String Method);
private:
// 请求头
std::map<CTL::String, CTL::String> Headers;
// 解析URL
void parseURL(const std::string& url, std::string& scheme, std::string& ip, int& port, std::string& path);
};
}
// 命名空间CTL结束
#endif