C语言 请用curl你封装四个接口分别是https 的 get请求post 请求 还有就是http的get请求 post 请求,带注释
时间: 2023-07-01 20:28:31 浏览: 151
以下是示例代码,对应四个接口,使用了CURL库进行封装,其中有注释说明参数的含义:
```c
#include <stdio.h>
#include <curl/curl.h>
// HTTPS GET请求
int https_get(char *url, char *response) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
// 设置请求的URL
curl_easy_setopt(curl, CURLOPT_URL, url);
// 设置SSL验证方式
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
// 设置返回数据的回调函数和回调函数参数
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response);
// 执行请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
return -1;
}
curl_easy_cleanup(curl);
}
return 0;
}
// HTTPS POST请求
int https_post(char *url, char *postdata, char *response) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
// 设置请求的URL
curl_easy_setopt(curl, CURLOPT_URL, url);
// 设置SSL验证方式
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
// 设置POST请求的参数
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
// 设置返回数据的回调函数和回调函数参数
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response);
// 执行请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
return -1;
}
curl_easy_cleanup(curl);
}
return 0;
}
// HTTP GET请求
int http_get(char *url, char *response) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
// 设置请求的URL
curl_easy_setopt(curl, CURLOPT_URL, url);
// 设置返回数据的回调函数和回调函数参数
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response);
// 执行请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
return -1;
}
curl_easy_cleanup(curl);
}
return 0;
}
// HTTP POST请求
int http_post(char *url, char *postdata, char *response) {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
// 设置请求的URL
curl_easy_setopt(curl, CURLOPT_URL, url);
// 设置POST请求的参数
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata);
// 设置返回数据的回调函数和回调函数参数
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response);
// 执行请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
return -1;
}
curl_easy_cleanup(curl);
}
return 0;
}
// 返回数据的回调函数
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
strcat(userdata, ptr);
return size * nmemb;
}
```
以上代码使用了回调函数write_callback来处理返回的数据,可以根据自己的需求进行修改。同时,需要注意curl库的安装和链接。
阅读全文