#include "Tool/Tool_Network.h"

// // 定义内存管理结构体
// struct MemoryStruct
// {
//     char *memory;
//     size_t size;
// };

// size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp)
// {
//     size_t realsize = size * nmemb;
//     struct MemoryStruct *mem = (struct MemoryStruct *)userp;

//     void *ptr = realloc(mem->memory, mem->size + realsize + 1);
//     if (!ptr)
//     {
//         return 0;
//     }

//     mem->memory = (char *)ptr;
//     memcpy(&(mem->memory[mem->size]), contents, realsize);
//     mem->size += realsize;
//     mem->memory[mem->size] = '\0';

//     return realsize;
// }

// int http_get(const char *url, char **response, size_t *response_size)
// {
//     CURL *curl;
//     CURLcode res;
//     struct MemoryStruct chunk;

//     // 初始化内存结构
//     chunk.memory = (char *)malloc(1);
//     chunk.size = 0;
//     if (!chunk.memory)
//     {
//         return -1;
//     }

//     curl = curl_easy_init();
//     if (curl)
//     {
//         curl_easy_setopt(curl, CURLOPT_URL, url);
//         curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
//         curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);

//         // 允许重定向
//         curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
//         curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 5L);

//         // 执行请求
//         res = curl_easy_perform(curl);

//         // 检查HTTP状态码
//         long response_code;
//         curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);

//         if (res != CURLE_OK)
//         {
//             free(chunk.memory);
//             *response = NULL;
//             *response_size = 0;
//             curl_easy_cleanup(curl);
//             return -1;
//         }

//         // 返回结果
//         *response = chunk.memory;
//         *response_size = chunk.size;

//         curl_easy_cleanup(curl);
//         return 0;
//     }

//     free(chunk.memory);
//     *response = NULL;
//     *response_size = 0;
//     return -1;
// }
