Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ curl

作者:萫蕉姺森う   发布日期:2026-06-19   浏览:54

#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;
}

解释说明:

  1. 包含头文件

    • #include <iostream>:用于输入输出操作。
    • #include <curl/curl.h>:引入libcurl库,用于发起HTTP请求。
  2. 回调函数 WriteCallback

    • 该函数用于处理从服务器接收到的数据,并将其存储在传入的 std::string 对象中。
  3. 初始化和清理

    • curl_global_init(CURL_GLOBAL_DEFAULT):初始化libcurl全局环境。
    • curl_easy_init():创建一个CURL句柄,用于设置和执行HTTP请求。
    • curl_easy_cleanup(curl):释放CURL句柄资源。
    • curl_global_cleanup():清理libcurl全局环境。
  4. 设置选项

    • 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 对象传递给回调函数,用于存储响应数据。
  5. 执行请求

    • curl_easy_perform(curl):执行HTTP请求,并返回结果码。
    • 如果请求失败,则输出错误信息;否则,输出服务器的响应内容。

上一篇:c++ eigen库

下一篇:c++ orm

大家都在看

c++闭包

c++向上取整的代码

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++怎么输入字符串

c++字符串切片

c++ functional

c++框架代码

c++格式化字符串

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站