代码拉取完成,页面将自动刷新
同步操作将从 LaFengQinCai/智能语言学习 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include <stdio.h>
#include "http.h"
// 发送GET请求
// url: 请求地址
// headers: 增加的请求头部字段
// psize: 响应正文大小,输出参数
// 返回值: 响应正文,需要调用者释放内存
char *get(char *url, struct curl_slist *headers, size_t *psize)
{
char *respdata;
size_t respsize;
FILE *fp = open_memstream(&respdata, &respsize);
if (!fp)
{
perror("open_memstream");
return NULL;
}
CURL *client = curl_easy_init();
if (!client)
{
perror("curl_easy_init");
fclose(fp);
return NULL;
}
curl_easy_setopt(client, CURLOPT_URL, url);
if (headers)
{
curl_easy_setopt(client, CURLOPT_HTTPHEADER, headers);
}
// 将服务器返回的响应报文保存到文件流中
curl_easy_setopt(client, CURLOPT_WRITEDATA, fp);
CURLcode error = curl_easy_perform(client);
if (error != CURLE_OK)
{
fprintf(stderr, "curl_easy_perform: %s\n", curl_easy_strerror(error));
curl_easy_cleanup(client);
fclose(fp);
return NULL;
}
curl_easy_cleanup(client);
fclose(fp);
// 更新响应正文大小
*psize = respsize;
return respdata;
}
// 发送POST请求
// url: 请求地址
// headers: 增加的请求头部字段
// data: 请求正文
// psize: 请求和响应正文大小,输入和输出参数
// 返回值: 响应正文,需要调用者释放内存
char *post(char *url, struct curl_slist *headers, char *data, size_t *psize)
{
char *respdata;
size_t respsize;
FILE *fp = open_memstream(&respdata, &respsize);
if (!fp)
{
perror("open_memstream");
return NULL;
}
CURL *client = curl_easy_init();
if (!client)
{
perror("curl_easy_init");
fclose(fp);
return NULL;
}
curl_easy_setopt(client, CURLOPT_URL, url);
curl_easy_setopt(client, CURLOPT_POST, 1);
curl_easy_setopt(client, CURLOPT_POSTFIELDS, data);
curl_easy_setopt(client, CURLOPT_POSTFIELDSIZE, *psize);
if (headers)
{
curl_easy_setopt(client, CURLOPT_HTTPHEADER, headers);
}
// 将服务器返回的响应报文保存到文件流中
curl_easy_setopt(client, CURLOPT_WRITEDATA, fp);
CURLcode error = curl_easy_perform(client);
if (error != CURLE_OK)
{
fprintf(stderr, "curl_easy_perform: %s\n", curl_easy_strerror(error));
curl_easy_cleanup(client);
fclose(fp);
return NULL;
}
curl_easy_cleanup(client);
fclose(fp);
// 更新响应正文大小
*psize = respsize;
return respdata;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。