#include <iostream>
#include <string>
#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 = curl_easy_init();
if (curl) {
// 设置URL
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
// 设置回调函数,将响应数据存储到readBuffer中
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 << readBuffer << std::endl;
}
// 清理CURL资源
curl_easy_cleanup(curl);
}
return 0;
}
引入必要的头文件:
#include <iostream> 和 #include <string> 用于标准输入输出和字符串操作。#include <curl/curl.h> 用于使用libcurl库进行HTTP请求。回调函数 WriteCallback:
readBuffer 字符串中。void* contents 是接收到的数据指针,size_t size 和 size_t nmemb 分别表示每个数据块的大小和数据块的数量,std::string* userp 是用户提供的缓冲区。主函数 main:
curl_easy_init()。curl_easy_setopt(curl, CURLOPT_URL, "http://example.com")。curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback) 和回调函数的参数 curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer)。curl_easy_perform(curl)。curl_easy_cleanup(curl)。这个示例展示了如何使用C++和libcurl库发起一个简单的HTTP GET请求,并处理服务器返回的数据。
上一篇:c++定义字符串
下一篇:c++ insert
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站