#include <iostream>
#include <curl/curl.h>
// 回调函数,用于处理从服务器接收到的数据
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
size_t totalSize = size * nmemb;
userp->append((char*)contents, totalSize);
return totalSize;
}
int main() {
CURL* curl;
CURLcode res;
std::string readBuffer;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
// 设置请求的URL
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
// 设置回调函数和用户数据
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
// 执行HTTP请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if(res != CURLE_OK)
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
else
std::cout << "Response from server: " << readBuffer << std::endl;
// 清理资源
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
包含头文件:
#include <iostream>:用于输入输出操作。#include <curl/curl.h>:引入libcurl库,用于发起HTTP请求。回调函数 WriteCallback:
std::string 对象中。初始化和清理:
curl_global_init(CURL_GLOBAL_DEFAULT):初始化libcurl全局环境。curl_easy_init():创建一个CURL句柄,用于设置和执行HTTP请求。curl_easy_cleanup(curl):释放CURL句柄资源。curl_global_cleanup():清理libcurl全局环境。设置选项:
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"):设置请求的目标URL。curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback):设置回调函数,用于处理响应数据。curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer):将 std::string 对象传递给回调函数,用于存储响应数据。执行请求:
curl_easy_perform(curl):执行HTTP请求,并返回结果码。上一篇:c++ eigen库
下一篇:c++ orm
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站