#ifndef __HttpClient_H_ #define __HttpClient_H_ #pragma once // 包含必要的头文件 #include "CCSocket.h" #include "CCJSONObject.h" #include "CCString.h" #include #include #include "map" // 定义最大数据大小 #define MaxDataSize 2048 // 命名空间CTL开始 namespace CTL { // 请求处理状态枚举 enum RequestProcessA { RequestProcessA_First, RequestProcessA_Header, RequestProcessA_Body, }; // 响应结构体 struct CCResponseA { // 响应头 std::map 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 Headers; // 解析URL void parseURL(const std::string& url, std::string& scheme, std::string& ip, int& port, std::string& path); }; } // 命名空间CTL结束 #endif